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

Java?for循環(huán)標(biāo)簽跳轉(zhuǎn)到指定位置的示例詳解

 更新時間:2023年05月11日 08:49:52   作者:xfcoding  
這篇文章主要介紹了Java?for循環(huán)標(biāo)簽跳轉(zhuǎn)到指定位置,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

Java for循環(huán)標(biāo)簽跳轉(zhuǎn)到指定位置

大家是否見過這種for循環(huán),在for循環(huán)前加了個標(biāo)記的:

outerLoop:
for (; ; ) {
    for (; ; ) {
        break outerLoop;
    }
}

我之前有一次在公司業(yè)務(wù)代碼中見過有這種寫法的,沒在意,今天在看JDK線程池的代碼時,又看到ThreadPoolExecutoraddWorker方法中有這種寫法。于是就查了相關(guān)資料,也比較簡單。

總結(jié)下它的用法吧:

  • 上面代碼中的outerLoop是一個標(biāo)記外層for循環(huán)的標(biāo)簽,它可以隨便命名。
  • 該標(biāo)簽主要用于for循環(huán)嵌套的情況,結(jié)合breakcontinue跳轉(zhuǎn)到外層for循環(huán);

我們知道,break的作用是跳出當(dāng)前循環(huán),continue的作用是結(jié)束本次循環(huán),繼續(xù)下次循環(huán)。如果有雙層for循環(huán),在內(nèi)層的for循環(huán)中,想直接跳出所有循環(huán),使用break outerLoop就可以實現(xiàn);而continue outerLoop的作用是結(jié)束外層的本次循環(huán),繼續(xù)外層的下一次循環(huán)。

舉個例子:

public static void main(String[] args) {
    String[] strings = {"1", "2", "3"};
    outerLoop:
    for (String str : strings) {
        for (; ; ) {
            if (str.equals("1")) {
                break;
            }
            if (str.equals("2")) {
                continue outerLoop;
            }
            if (str.equals("3")) {
                break outerLoop;
            }
        }
        System.out.println("str.equals(1)");
    }
    System.out.println("str.equals(3)");
}

上面代碼中雙重for循環(huán),執(zhí)行邏輯為:

  • 第一個if跳出當(dāng)前內(nèi)層循環(huán),會打印str.equals(1);
  • 第二個if執(zhí)行外層for循環(huán)的下一次循環(huán);
  • 最后一次循環(huán),str的值為3,跳出外層循環(huán),結(jié)束整個循環(huán),然后打印str.equals(3)。

這種for加標(biāo)簽的寫法確實很少見,學(xué)Java的時候都沒學(xué)這個東西,實際寫業(yè)務(wù)代碼的時候能避免就避免,內(nèi)層循環(huán)能抽就抽個方法。如果業(yè)務(wù)太復(fù)雜抽不了,這種寫法也不失為一種策略。

補充:java for 循環(huán)continue 跳轉(zhuǎn)到外層

for (int i = 0; i < cardRecordsList.size(); i++) {
            BomCardRecords bomCardRecords = cardRecordsList.get(i);
            String recordsContent = bomCardRecords.getRecordsContent();
            if (i == 0){
                recordsContent += "$$$狀態(tài)";
            }
            String[] contentArr = recordsContent.split("\\$\\$\\$", -1);
            List<String> needData = new ArrayList<>();
            for (int j = 0; j < contentArr.length; j++) {
                String contentColumn = contentArr[contentArr.length - 1];
                if (StringUtils.isBlank(state)) {
                    clearUpData(columns, partList, contentArr, columnArr, needData);
                    continue;
                } else {
                    String[] stateArr = state.split(" ");
                    List<String> stateList = Arrays.asList(stateArr);
                    contentColumn = contentColumn.split(",")[0];
                    if (contentColumn.equals("狀態(tài)") || stateList.contains(contentColumn)) {
                        clearUpData(columns, partList, contentArr, columnArr, needData);
                        continue;
                    }
                }
            }
        }

continue 跳出循環(huán)

如上代碼我們是嵌套循環(huán) , 當(dāng)我們循環(huán)完畢時需要跳出最外層循環(huán) , 我們只需要在跳轉(zhuǎn)的的地方這么來寫

my:
        for (int i = 0; i < cardRecordsList.size(); i++) {
            BomCardRecords bomCardRecords = cardRecordsList.get(i);
            String recordsContent = bomCardRecords.getRecordsContent();
            if (i == 0){
                recordsContent += "$$$狀態(tài)";
            }
            String[] contentArr = recordsContent.split("\\$\\$\\$", -1);
            List<String> needData = new ArrayList<>();
            for (int j = 0; j < contentArr.length; j++) {
                String contentColumn = contentArr[contentArr.length - 1];
                if (StringUtils.isBlank(state)) {
                    clearUpData(columns, partList, contentArr, columnArr, needData);
                    continue my;
                } else {
                    String[] stateArr = state.split(" ");
                    List<String> stateList = Arrays.asList(stateArr);
                    contentColumn = contentColumn.split(",")[0];
                    if (contentColumn.equals("狀態(tài)") || stateList.contains(contentColumn)) {
                        clearUpData(columns, partList, contentArr, columnArr, needData);
                        continue my;
                    }
                }
            }
        }

這樣我們就可continue到最外層循環(huán)了

到此這篇關(guān)于Java for循環(huán)標(biāo)簽跳轉(zhuǎn)到指定位置的文章就介紹到這了,更多相關(guān)java跳轉(zhuǎn)到指定位置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis映射文件中的動態(tài)SQL實例詳解

    MyBatis映射文件中的動態(tài)SQL實例詳解

    在本文中,我們深入探討了動態(tài)SQL的各種標(biāo)簽,包括<if>、<choose>、<trim>、<foreach>等,通過實際的例子演示了它們的用法,感興趣的朋友一起揭開動態(tài)SQL的神秘面紗,帶你領(lǐng)略它的魅力
    2024-01-01
  • 使用SpringBoot開發(fā)Restful服務(wù)實現(xiàn)增刪改查功能

    使用SpringBoot開發(fā)Restful服務(wù)實現(xiàn)增刪改查功能

    Spring Boot是由Pivotal團(tuán)隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。這篇文章主要介紹了基于SpringBoot開發(fā)一個Restful服務(wù),實現(xiàn)增刪改查功能,需要的朋友可以參考下
    2018-01-01
  • Java?CAS與Atomic原子操作核心原理詳解

    Java?CAS與Atomic原子操作核心原理詳解

    CAS(Compare?and?Swap)和Atomic原子操作是保證多線程并發(fā)安全的常用機(jī)制,能夠高效地實現(xiàn)對共享變量的安全訪問和修改,避免線程競爭導(dǎo)致的數(shù)據(jù)不一致和死鎖等問題。它們的應(yīng)用可以提高程序的并發(fā)性能和可維護(hù)性,是多線程編程中的重要工具
    2023-04-04
  • 利用MyBatis進(jìn)行不同條件的like模糊查詢的方法

    利用MyBatis進(jìn)行不同條件的like模糊查詢的方法

    這篇文章主要介紹了利用MyBatis進(jìn)行不同條件的like模糊查詢,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Redis內(nèi)存數(shù)據(jù)庫示例分析

    Redis內(nèi)存數(shù)據(jù)庫示例分析

    Redis本身的內(nèi)容比較復(fù)雜。如果你上來,你應(yīng)該研究一個細(xì)節(jié)點,比如連接池和數(shù)據(jù)結(jié)構(gòu)。雖然可以直接了解某一點的詳細(xì)來源內(nèi)容,甚至盡快解決一些意外,但是容易淹沒在失眠的細(xì)節(jié)中,整體控制不了Redis
    2022-12-12
  • Spring?MVC的完整執(zhí)行流程和常用組件詳解

    Spring?MVC的完整執(zhí)行流程和常用組件詳解

    SpringMvc是Spring的一個基于MVC開發(fā)的一個框架,用來處理前端請求,可以和Spring無縫整合,下面這篇文章主要給大家介紹了關(guān)于Spring?MVC的完整執(zhí)行流程和常用組件的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Java 將字符串動態(tài)生成字節(jié)碼的實現(xiàn)方法

    Java 將字符串動態(tài)生成字節(jié)碼的實現(xiàn)方法

    本篇文章主要是對Java將字符串動態(tài)生成字節(jié)碼的實現(xiàn)方法進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • 深入了解Java核心類庫--泛型類

    深入了解Java核心類庫--泛型類

    這篇文章主要為大家詳細(xì)介紹了java泛型類定義與使用的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能給你帶來幫助
    2021-07-07
  • 淺析Java中Apache BeanUtils和Spring BeanUtils的用法

    淺析Java中Apache BeanUtils和Spring BeanUtils的用法

    這篇文章主要介紹了Java中Apache BeanUtils和Spring BeanUtils的用法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 通過Java實現(xiàn)自己動手寫ls命令

    通過Java實現(xiàn)自己動手寫ls命令

    在前面的文章中,我們仔細(xì)的介紹了關(guān)于ls命令的使用和輸出結(jié)果,在本篇文章當(dāng)中我們用Java代碼自己實現(xiàn)ls命令,更加深入的了解ls命令
    2022-10-10

最新評論

马关县| 临湘市| 固原市| 鹤庆县| 西和县| 汝阳县| 桦川县| 哈巴河县| 色达县| 漠河县| 吉木乃县| 达州市| 寻甸| 古浪县| 鄢陵县| 平乡县| 兴仁县| 新安县| 莒南县| 渝北区| 分宜县| 天等县| 琼中| 大洼县| 泊头市| 庄河市| 莱西市| 江西省| 通河县| 襄樊市| 双城市| 凤冈县| 拉萨市| 华容县| 易门县| 大新县| 邹平县| 巴楚县| 达拉特旗| 师宗县| 无棣县|