Java中outer標(biāo)簽的用法實(shí)例代碼
在Java開發(fā)的過程中,經(jīng)常會(huì)遇到碰到某些情況從而直接跳出循環(huán),一般來說可以使用break直接跳出循環(huán),但是對(duì)于嵌套了好幾層的循環(huán),break則顯得有些不足,這個(gè)時(shí)候就可以使用Java的標(biāo)簽了,一般使用outer,注意:這里的outer并不是關(guān)鍵字,而僅僅是一個(gè)標(biāo)簽。假如我們把outer替換為其他的詞語,也是可以的,當(dāng)然,相應(yīng)的下面的outer也要替換。下面我們以實(shí)例代碼來說明:
首先編寫一個(gè)很簡(jiǎn)單的兩層循環(huán),并打印輸出到控制臺(tái):
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
很簡(jiǎn)單的一個(gè)代碼,下面我們?cè)谕鈱友h(huán)前面添加outer標(biāo)簽,并且在內(nèi)層循環(huán)中自定義一個(gè)判斷條件來判斷何時(shí)執(zhí)行outer,代碼如下,大家請(qǐng)注意修改的地方,僅有兩處:
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);
}
}
}
}這是測(cè)試結(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的時(shí)程序直接跳出外層循環(huán),向下繼續(xù)執(zhí)行了。那么如果這里不同outer標(biāo)簽,而是直接用break呢,結(jié)果又會(huì)是什么樣子?接著看代碼,注意不同的地方:
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
這個(gè)結(jié)果比上一次多運(yùn)行了一個(gè)外層循環(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條件時(shí)需要跳出到外層循環(huán),此時(shí)便需要使用outer,相當(dāng)于goto.
到此這篇關(guān)于Java中outer標(biāo)簽的用法的文章就介紹到這了,更多相關(guān)java outer使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot集成ShedLock實(shí)現(xiàn)分布式定時(shí)任務(wù)
ShedLock 是一個(gè) Java 庫,通常用于分布式系統(tǒng)中,確保定時(shí)任務(wù)(Scheduled Tasks)在集群環(huán)境下只被某一個(gè)實(shí)例執(zhí)行一次,它通過在共享資源中添加鎖的方式,本文給大家介紹了SpringBoot集成ShedLock實(shí)現(xiàn)分布式定時(shí)任務(wù),需要的朋友可以參考下2024-11-11
詳解Spring與Mybatis整合方法(基于IDEA中的Maven整合)
這篇文章主要介紹了Spring與Mybatis整合方法(基于IDEA中的Maven整合),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
SpringBoot 啟動(dòng)方法run()源碼解析
這篇文章主要介紹了SpringBoot 啟動(dòng)方法run()源碼賞析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
Java編程中實(shí)現(xiàn)歸并排序算法的實(shí)例教程
這篇文章主要介紹了Java編程中實(shí)現(xiàn)歸并排序算法的實(shí)例教程,包括自底向上的歸并排序的實(shí)現(xiàn)方法介紹,需要的朋友可以參考下2016-05-05
【java 多線程】守護(hù)線程與非守護(hù)線程的詳解
這篇文章主要介紹了java守護(hù)線程與非守護(hù)線程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
SpringBoot?如何將項(xiàng)目打包成?jar?包
這篇文章主要介紹了SpringBoot如何將項(xiàng)目打包成jar包,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08

