break和continue的作用和區(qū)別解析(案例分析)
break和continue的作用和區(qū)別是什么?
一、break和continue的作用
break和continue都是用來控制循環(huán)結(jié)構(gòu)的,主要作用是停止循環(huán)。
二、break和continue的區(qū)別
1、break用于跳出一個(gè)循環(huán)體或者完全結(jié)束一個(gè)循環(huán),不僅可以結(jié)束其所在的循環(huán),還可結(jié)束其外層循環(huán)。
注意:
(1)只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break。
(2)不管是哪種循環(huán),一旦在循環(huán)體中遇到break,系統(tǒng)將完全結(jié)束循環(huán),開始執(zhí)行循環(huán)之后的代碼。
(3)當(dāng)break出現(xiàn)在循環(huán)體中的switch語句體內(nèi)時(shí),起作用只是跳出該switch語句體,并不能終止循環(huán)體的執(zhí)行。若想強(qiáng)行終止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語句中設(shè)置break語句,滿足某種條件則跳出本層循環(huán)體。
2、continue語句的作用是跳過本次循環(huán)體中剩下尚未執(zhí)行的語句,立即進(jìn)行下一次的循環(huán)條件判定,可以理解為只是中止(跳過)本次循環(huán),接著開始下一次循環(huán)。
注意:
(1)continue語句并沒有使整個(gè)循環(huán)終止。
(2)continue 只能在循環(huán)語句中使用,即只能在 for、while 和 do…while 語句中使用。
三、案例分析
先舉兩個(gè)通俗易懂的例子
案例一 對(duì)于break語句
假設(shè)一個(gè)場景,你有一個(gè)漂亮的老婆,然后你犯錯(cuò)了,你老婆罰你做5天家務(wù),每天都是給老婆做菜,但是做菜到第三天后老婆心軟了,原諒你不用做了。
代碼如下(示例):
public class Test1{ public static void main(String[] args){ for (int i = 1; i <= 5; i++) { System.out.println("快樂的做菜~~~~"); if(i == 3) { //給老婆做菜第3天 break; // 跳出并結(jié)束當(dāng)前循環(huán)的執(zhí)行 } } } }
結(jié)果是你給老婆只做了3天的菜
案例二 對(duì)于continue語句
假設(shè)和上面案例同樣的場景,你犯錯(cuò)了,你老婆罰你做5天家務(wù),每天都是做菜,但是做菜到第三天后老婆心軟了,原諒你不用做了,但后面依然不解恨,讓你繼續(xù)做第4、5天。
代碼如下(示例):
public class Test2{ public static void main(String[] args){ for(int i = 1; i <= 5; i++ ){ if(i == 3){ //給老婆做菜第3天 continue;//立即跳出當(dāng)次執(zhí)行,進(jìn)入下一次循環(huán) } System.out.println("給老婆第"+ i +"天做菜"); } } }
結(jié)果是你給老婆只做了第1、2、4、5天的菜
案例三 對(duì)于break語句
代碼如下(示例):
public class Test3 { public static void main(String[] args) { for(int i=0; i<12; i++){ if(i==5){ break; } System.out.print(i+" "); } } }
運(yùn)行結(jié)果:
0 1 2 3 4
程序分析:
①程序輸出了01234 到5的時(shí)候跳出了循環(huán)。
②break語句導(dǎo)致程序終止包含它的循環(huán),并進(jìn)行程序的下一階段(整個(gè)循環(huán)后面的語句),即:不是跳到下一個(gè)循環(huán)周期而是退出循環(huán)。如果break語句包含在嵌套循環(huán)里,它只跳出最里面的循環(huán)。
案例四 對(duì)于continue語句
代碼如下(示例):
public class Test4 { public static void main(String[] args) { for(int i=0; i<12; i++){ if(i==5){ continue; } System.out.print(i+" "); } } }
運(yùn)行結(jié)果:
0 1 2 3 4 6 7 8 9 10 11
程序分析:
①可以看到只有5沒有輸出,也即當(dāng)i=5時(shí)沒有執(zhí)行打印操作,直接到下一次循環(huán)。
②循環(huán)語句里有continue語句時(shí),程序運(yùn)行到此語句時(shí),不在執(zhí)行循環(huán)體里continue后面的語句而是跳到下一個(gè)循環(huán)入口處執(zhí)行下一個(gè)循環(huán)。
到此這篇關(guān)于break和continue的作用和區(qū)別是什么的文章就介紹到這了,更多相關(guān)break和continue作用和區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring boot項(xiàng)目打包成war在tomcat運(yùn)行的全步驟
這篇文章主要給大家介紹了關(guān)于spring boot項(xiàng)目打包成war在tomcat運(yùn)行的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Java實(shí)現(xiàn)的DES加密解密工具類實(shí)例
這篇文章主要介紹了Java實(shí)現(xiàn)的DES加密解密工具類,結(jié)合具體實(shí)例形式分析了Java實(shí)現(xiàn)的DES加密解密工具類定義與使用方法,需要的朋友可以參考下2017-09-09Spring框架事務(wù)屬性中事務(wù)隔離級(jí)別與傳播行為全面講解
這篇文章主要介紹了Spring框架聲明式事務(wù)的事務(wù)隔離級(jí)別和事務(wù)傳播行為,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-11-11Spring切面優(yōu)先級(jí)與基于xml的AOP實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Spring切面的優(yōu)先級(jí)與基于xml的AOP的詳細(xì)步驟,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11SpringSecurity實(shí)現(xiàn)動(dòng)態(tài)url攔截(基于rbac模型)
本文主要介紹了SpringSecurity動(dòng)態(tài)url攔截,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08java:程序包org.bouncycastle.jce.provider不存在問題及解決
這篇文章主要介紹了java:程序包org.bouncycastle.jce.provider不存在問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05JPA?通過Specification如何實(shí)現(xiàn)復(fù)雜查詢
這篇文章主要介紹了JPA?通過Specification如何實(shí)現(xiàn)復(fù)雜查詢,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11