国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

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

2024-07-14 08:42:43
字體:
來源:轉載
供稿:網友

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。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 景泰县| 胶州市| 浦北县| 科技| 黔东| 宾川县| 定州市| 商水县| 普兰县| 扎赉特旗| 内江市| 台北市| 华阴市| 仪陇县| 晋州市| 德保县| 石城县| 逊克县| 乌恰县| 东丰县| 巴中市| 洛隆县| 宁强县| 墨玉县| 新巴尔虎右旗| 尖扎县| 邢台县| 石狮市| 镇坪县| 策勒县| 寿宁县| 林西县| 苗栗市| 金沙县| 通州市| 宜兴市| 宁南县| 堆龙德庆县| 和顺县| 东山县| 大同市|