java中continue和break區(qū)別詳細(xì)解析
1 break用于完全結(jié)束一個(gè)循環(huán),跳出循環(huán)體,執(zhí)行循環(huán)后面的語(yǔ)句。
2 continue是跳過(guò)當(dāng)次循環(huán)中剩下的語(yǔ)句,執(zhí)行下一次循環(huán)。
但其實(shí)這兩句話看不出什么明顯的意思,還是要通過(guò)寫循環(huán)才能明白。
先自己運(yùn)算答案,然后分別對(duì)照正確答案。
(一)執(zhí)行continueMethod1(),結(jié)果應(yīng)當(dāng)是
分析如下:i=0開始,i=7結(jié)束。
(1)當(dāng)i = 0,接著條件判斷false,執(zhí)行“i=i+1”代碼后,i=1,所以最后控制臺(tái)輸出1.第一輪循環(huán)結(jié)束
(2)然后因?yàn)槭莊or循環(huán),有變更條件i++,所以第二輪循環(huán)體i=2開始,接著條件判斷true,所以控制臺(tái)輸出“i的值為2,continue”。由于continue是跳出本輪循環(huán),所以屬于第二輪循環(huán)的代碼i = i+1 和System.out.println(i) 不再執(zhí)行。第二輪循環(huán)結(jié)束
(3)變更條件i++,所以第二輪循環(huán)體i=3開始,接著條件判斷false,執(zhí)行“i=i+1”代碼后,i=4,所以最后控制臺(tái)輸出4.第3輪循環(huán)結(jié)束
(4)變更條件i++,所以第4輪循環(huán)體i=5開始,接著條件判斷false,執(zhí)行“i=i+1”代碼后,i=6,所以最后控制臺(tái)輸出6.第4輪循環(huán)結(jié)束
(5)變更條件i++,所以第5輪循環(huán)體i=7開始,接著條件判斷false,執(zhí)行“i=i+1”代碼后,i=8,所以最后控制臺(tái)輸出8。此刻循環(huán)終止。
(二)執(zhí)行breakMethod1(),結(jié)果應(yīng)當(dāng)是
分析如下:只看for循環(huán),本來(lái)應(yīng)該是i=1開始,i=7結(jié)束。
(1)當(dāng)i = 0,接著條件判斷false,執(zhí)行“i=i+1”代碼后,i=1,所以最后控制臺(tái)輸出1.第一輪循環(huán)結(jié)束
(2)然后因?yàn)槭莊or循環(huán),有變更條件i++,所以第二輪循環(huán)體i=2開始,接著條件判斷true,所以輸出“i的值為2,break”。由于完全結(jié)束一個(gè)循環(huán),跳出循環(huán)體,執(zhí)行循環(huán)后面的語(yǔ)句。所以整個(gè)循環(huán)直接跳出。不再循環(huán)。
(三)執(zhí)行continueMethod2(),結(jié)果應(yīng)當(dāng)是
分析如下 i=0開始,i=6結(jié)束。
(1)i=0,接著條件判斷為true,執(zhí)行i++后,i = 1;continue是跳出本輪循環(huán),所以下面屬于本輪循環(huán)的i++和 s += i 不再執(zhí)行,第一輪循環(huán)結(jié)束。
(2)i=1,條件判斷false,執(zhí)行i++和 s += i 代碼后,i = 2,s= 2,第2輪循環(huán)結(jié)束。
(3) i=2,條件判斷true,執(zhí)行i++后,i = 3;continue是跳出本輪循環(huán),所以下面屬于本輪循環(huán)的i++和 s += i 不再執(zhí)行,第三輪循環(huán)結(jié)束。第三輪s依然為2
(4)i=3,條件判斷false,執(zhí)行i++和 s += i 代碼后,i = 4,s= 6,第4輪循環(huán)結(jié)束。
(5) i=4,條件判斷true,執(zhí)行i++后,i = 5;continue是跳出本輪循環(huán),所以下面屬于本輪循環(huán)的i++和 s += i 不再執(zhí)行,第5輪循環(huán)結(jié)束。第三輪s依然為6
(6)i=5,條件判斷false,執(zhí)行i++和 s += i 代碼后,i = 6,s= 12,第6輪循環(huán)結(jié)束。
(7)i=6,條件判斷true,執(zhí)行i++后,i = 7;continue是跳出本輪循環(huán),所以下面屬于本輪循環(huán)的i++和 s += i 不再執(zhí)行,第三輪循環(huán)結(jié)束。第三輪s依然為12.此刻不符合while條件,所以執(zhí)行
System.out.println(s),最后控制臺(tái)結(jié)果為12。
(四)執(zhí)行breakMethod2(),結(jié)果應(yīng)當(dāng)是
分析如下本來(lái)應(yīng)該是 i=0開始,i=6結(jié)束。
(1)i=0,接著條件判斷為true,執(zhí)行i++后,i = 1;break用于完全結(jié)束一個(gè)循環(huán),跳出循環(huán)體,執(zhí)行循環(huán)后面的語(yǔ)句。所以循環(huán)直接結(jié)束,s依然為0。
最后控制臺(tái)輸出0
案例分析
案例一
代碼如下(示例):
public class Test { 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語(yǔ)句導(dǎo)致程序終止包含它的循環(huán),并進(jìn)行程序的下一階段(整個(gè)循環(huán)后面的語(yǔ)句),即:不是跳到下一個(gè)循環(huán)周期而是退出循環(huán)。如果break語(yǔ)句包含在嵌套循環(huán)里,它只跳出最里面的循環(huán)。
案例二
代碼如下(示例):
public class Test { 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)語(yǔ)句里有continue語(yǔ)句時(shí),程序運(yùn)行到此語(yǔ)句時(shí),不在執(zhí)行循環(huán)體里continue后面的語(yǔ)句而是跳到下一個(gè)循環(huán)入口處執(zhí)行下一個(gè)循環(huán)。
總結(jié)
到此這篇關(guān)于java中continue和break區(qū)別的文章就介紹到這了,更多相關(guān)java continue和break區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot 2.0 設(shè)置網(wǎng)站默認(rèn)首頁(yè)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Spring Boot 2.0 設(shè)置網(wǎng)站默認(rèn)首頁(yè)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2018-04-04java substring(a)與substring(a,b)的使用說(shuō)明
這篇文章主要介紹了java substring(a)與substring(a,b)的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10使用Java開發(fā)實(shí)現(xiàn)OAuth安全認(rèn)證的應(yīng)用
這篇文章主要介紹了使用Java開發(fā)實(shí)現(xiàn)OAuth安全認(rèn)證的應(yīng)用的方法,OAuth安全認(rèn)證經(jīng)常出現(xiàn)于社交網(wǎng)絡(luò)API應(yīng)用的相關(guān)開發(fā)中,需要的朋友可以參考下2015-11-11