Java中outer標(biāo)簽的用法實(shí)例代碼
在Java開發(fā)的過程中,經(jīng)常會遇到碰到某些情況從而直接跳出循環(huán),一般來說可以使用break直接跳出循環(huán),但是對于嵌套了好幾層的循環(huán),break則顯得有些不足,這個時候就可以使用Java的標(biāo)簽了,一般使用outer,注意:這里的outer并不是關(guān)鍵字,而僅僅是一個標(biāo)簽。假如我們把outer替換為其他的詞語,也是可以的,當(dāng)然,相應(yīng)的下面的outer也要替換。下面我們以實(shí)例代碼來說明:
首先編寫一個很簡單的兩層循環(huán),并打印輸出到控制臺:
public class TestOuter { public static void main(String[] args) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { System.out.println("i=" + i + ", j=" + j); } } } }
運(yùn)行結(jié)果如下:
i=0, j=0
i=0, j=1
i=0, j=2
i=1, j=0
i=1, j=1
i=1, j=2
i=2, j=0
i=2, j=1
i=2, j=2
很簡單的一個代碼,下面我們在外層循環(huán)前面添加outer標(biāo)簽,并且在內(nèi)層循環(huán)中自定義一個判斷條件來判斷何時執(zhí)行outer,代碼如下,大家請注意修改的地方,僅有兩處:
public class TestOuter { public static void main(String[] args) { //在外層循環(huán)處添加outer標(biāo)簽 outer : for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { //設(shè)置outer的判斷條件 if(i == 1) { break outer; } System.out.println("i=" + i + ", j=" + j); } } } }
這是測試結(jié)果:
i=0, j=0
i=0, j=1
i=0, j=2
很明顯,程序只執(zhí)行了i=0,并在內(nèi)層循環(huán)了3次就停止了,說明當(dāng)i=1的時程序直接跳出外層循環(huán),向下繼續(xù)執(zhí)行了。那么如果這里不同outer標(biāo)簽,而是直接用break呢,結(jié)果又會是什么樣子?接著看代碼,注意不同的地方:
public class TestOuter { public static void main(String[] args) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { //不要outer,僅僅用break if(i == 1) { break; } System.out.println("i=" + i + ", j=" + j); } } } }
運(yùn)行結(jié)果如下:
i=0, j=0
i=0, j=1
i=0, j=2
i=2, j=0
i=2, j=1
i=2, j=2
這個結(jié)果比上一次多運(yùn)行了一個外層循環(huán)i=2,說明什么?說明在沒有outer的情況下,break只是結(jié)束內(nèi)層循環(huán),但是不影響外層循環(huán),外層循環(huán)接著執(zhí)行,這邊是break和break outer的區(qū)別。
補(bǔ)充:java中outer的使用
outer多用于嵌套循環(huán)的情況
outer: for (int i = 2 ; i <= 10 ; i++) { for (int j = 2 ; j <=10 ; j++) { if(i != 2 && j % i== 0) { continue outer; } } System.out.println(i+n); }
滿足內(nèi)層循環(huán)中if條件時需要跳出到外層循環(huán),此時便需要使用outer,相當(dāng)于goto.
到此這篇關(guān)于Java中outer標(biāo)簽的用法的文章就介紹到這了,更多相關(guān)java outer使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot整合阿里?Druid?數(shù)據(jù)源的實(shí)例詳解
這篇文章主要介紹了SpringBoot整合阿里?Druid?數(shù)據(jù)源,主要講解了手動配置方法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-11-11sql查詢返回值使用map封裝多個key和value實(shí)例
這篇文章主要介紹了sql查詢返回值使用map封裝多個key和value實(shí)例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07如何使用pipeline和jacoco獲取自動化測試代碼覆蓋率
這篇文章主要介紹了如何使用pipeline和jacoco獲取自動化測試代碼覆蓋率,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11如何運(yùn)行SpringBoot項(xiàng)目的方法
這篇文章主要介紹了如何運(yùn)行SpringBoot項(xiàng)目的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03