91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java的“Goto”與標簽及使用詳解

發布時間:2020-08-27 16:59:27 來源:腳本之家 閱讀:151 作者:mrr 欄目:編程語言

goto在Java中是一個保留字,但在語言中并沒有用到它;Java沒有goto。但是,Java也能完成一些類似于跳轉的操作,主要是依靠:標簽。

為什么要使用標簽

在迭代語句中,我們可以使用break和continue來中斷當前循環。但如果出現循環嵌套的情況,使用break和continue只能中斷內層循環,無法控制到外層的循環。這時,我們就可以使用標簽結合break和continue,中斷內層循環,跳轉到標簽所在的地方。

標簽聲明

標簽的聲明很簡單,加個冒號就行,就像下面這樣:

label1:

標簽使用

在Java中,標簽起作用的唯一地方是在迭代語句之前,注意“唯一”,也就是說不能在其它地方單獨使用,只能結合迭代語句共同使用。

下面這個例子展示了帶標簽的break以及continue語句在while循環中的用法:

/**
 * @author zouqingfeng
 */
public class GotoLabelTest {
  public static void main(String[] args) {
    int i = 0;
    label1: while (true) {
      System.out.println("----------------外層循環開始----------------");
      while (true) {
        i++;
        System.out.println("i=" + i);
        if (i == 1) {
          System.out.println("continue");
          continue;
        }
        if (i == 3) {
          System.out.println("continue label1");
          continue label1;
        }
        if (i == 5) {
          System.out.println("break");
          break;
        }
        if (i == 7) {
          System.out.println("break label1");
          break label1;
        }
        System.out.println("----------------內層循環結束----------------");
      }
      System.out.println("----------------外層循環結束----------------");
    }
    System.out.println("End");
    /* Output:
      ----------------外層循環開始----------------
      i=1
      continue
      i=2
      ----------------內層循環結束----------------
      i=3
      continue label1
      ----------------外層循環開始----------------
      i=4
      ----------------內層循環結束----------------
      i=5
      break
      ----------------外層循環結束----------------
      ----------------外層循環開始----------------
      i=6
      ----------------內層循環結束----------------
      i=7
      break label1
      End
     */    
  }
}

 從打印的結果可以看出

當i==1時,執行continue后,沒有執行“內層循環結束”打印語句,而是打印了“i=2”,說明continue使執行點回到內層循環起始處,并繼續下一次迭代。

當i==3時,執行continue label1后,沒有執行“內層循環結束”打印語句,也沒有執行“外層循環結束”,而是打印了“外層循環開始”,說明帶標簽的continue,對內外層循環都起作用,continue label1同時中斷內外層循環,直接跳轉到label1標簽處,隨后,從外部循環開始下一次的迭代。

當i==5時,執行break后,沒有執行“內層循環結束”,但執行了“外層循環結束”,說明break只中斷并跳出內層循環,回到了外層循環中。

當i==7時,執行break label1后,直接打印了“End”,說明帶標簽的break,對內外層循環都起作用,break label1同時中斷內外層循環,直接跳轉到label1標簽處,但并不重新進入迭代。也就是說,break label1完全終止了兩個循環。

總結

1.一般的continue只會對其所在的循環起作用,退回循環的開頭,并繼續執行。
2.帶標簽的continue會使執行點到達標簽的位置,并重新進入緊接在標簽后的循環。
3.一般的break會中斷并跳出當前循環。
4.帶標簽的break會中斷并跳出標簽所指的循環。
5.在Java中,標簽起作用的唯一地方是在迭代語句之前。
6.在Java中,使用標簽的唯一理由是有嵌套循環存在,并且想從多層嵌套中break或continue。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

土默特左旗| 青龙| 原平市| 波密县| 凤山市| 蛟河市| 武乡县| 铁岭县| 阿勒泰市| 镇沅| 郓城县| 金山区| 灵台县| 六枝特区| 巫溪县| 紫金县| 海口市| 景谷| 磐石市| 大田县| 工布江达县| 龙岩市| 扶风县| 扎兰屯市| 镇赉县| 黎平县| 山丹县| 伊吾县| 绥德县| 余庆县| 宁阳县| 宾阳县| 东乌珠穆沁旗| 新宁县| 长汀县| 长海县| 富平县| 汝阳县| 河北区| 通江县| 新闻|