最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2018年10月31日 14:49:55   投稿:mrr  
goto在Java中是一個保留字,但在語言中并沒有用到它;Java沒有goto。接下來通過本文給大家介紹Java的“Goto”與標簽,感興趣的朋友跟隨小編一起看看吧

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

為什么要使用標簽

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

標簽聲明

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

label1:

標簽使用

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

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

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

 從打印的結果可以看出

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

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

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

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

總結

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

相關文章

  • MyBatis-Plus之@TableField的用法解讀

    MyBatis-Plus之@TableField的用法解讀

    這篇文章主要介紹了MyBatis-Plus之@TableField的用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Spring Boot產(chǎn)生環(huán)形注入的解決方案

    Spring Boot產(chǎn)生環(huán)形注入的解決方案

    這篇文章主要介紹了Spring Boot產(chǎn)生環(huán)形注入的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringBoot 如何整合 ES 實現(xiàn) CRUD 操作

    SpringBoot 如何整合 ES 實現(xiàn) CRUD 操作

    這篇文章主要介紹了SpringBoot 如何整合 ES 實現(xiàn) CRUD 操作,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-10-10
  • Java實現(xiàn)五子棋(附詳細源碼)

    Java實現(xiàn)五子棋(附詳細源碼)

    這篇文章主要為大家詳細介紹了Java實現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • spring boot+ redis 接口訪問頻率限制的實現(xiàn)

    spring boot+ redis 接口訪問頻率限制的實現(xiàn)

    這篇文章主要介紹了spring boot+ redis 接口訪問頻率限制的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Spring boot集成redis lettuce代碼實例

    Spring boot集成redis lettuce代碼實例

    這篇文章主要介紹了Spring boot集成redis lettuce代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Eclipse配置Tomcat和JDK步驟圖解

    Eclipse配置Tomcat和JDK步驟圖解

    這篇文章主要內(nèi)容是Eclipse配置Tomcat和JDK步驟圖解,需要的朋友可以參考下
    2015-08-08
  • 淺談Springboot下引入mybatis遇到的坑點

    淺談Springboot下引入mybatis遇到的坑點

    這篇文章主要介紹了Springboot下引入mybatis遇到的坑點,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java設計模式學習之簡單工廠模式

    java設計模式學習之簡單工廠模式

    這篇文章主要為大家詳細介紹了java設計模式學習之簡單工廠模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • mybatis的dtd約束文件及配置文件xml自動提示操作

    mybatis的dtd約束文件及配置文件xml自動提示操作

    這篇文章主要介紹了mybatis的dtd約束文件及配置文件xml自動提示操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論

清水河县| 宁波市| 柘荣县| 南丹县| 砀山县| 乌苏市| 平湖市| 张家界市| 洛阳市| 儋州市| 右玉县| 大邑县| 平乡县| 新绛县| 屯门区| 揭阳市| 青铜峡市| 揭阳市| 舒城县| 博爱县| 彰化市| 色达县| 左云县| 龙海市| 荥经县| 井冈山市| 焉耆| 老河口市| 普安县| 和平县| 汨罗市| 宜黄县| 阜平县| 台安县| 汉中市| 麻阳| 宁远县| 墨脱县| 治多县| 钟祥市| 海口市|