java中break和continue源碼解析
在自己學(xué)習(xí)java語(yǔ)言的過(guò)程中,很容易把break和continue的用法混淆。為了便于以后快速查閱及溫習(xí),在此特留學(xué)習(xí)筆記一份。
簡(jiǎn)述
在任何迭代語(yǔ)句的主體部分,都可以用break和continue控制循環(huán)的流程。其中,break用于強(qiáng)行退出循環(huán),不執(zhí)行循環(huán)中剩余的語(yǔ)句。而continue則停止執(zhí)行當(dāng)前迭代,然后退回循環(huán)起始處,開(kāi)始下一次迭代。
源碼
下面這個(gè)程序向大家展示了break和continue在for和while循環(huán)中的例子:
package com.mufeng.thefourthchapter; public class BreakAndContinue { public static void main(String[] args) { for (int i = 0; i < 100; i++) { if (i == 74) {// Out of for loop break; } if (i % 9 != 0) {// Next iteration continue; } System.out.print(i + " "); } System.out.println(); int i = 0; while (true) { i++; int j = i * 27; if (j == 1269) {// Out of loop break; } if (i % 10 != 0) {// Top of loop continue; } System.out.print(i + " "); } } }
輸出結(jié)果
01.0 9 18 27 36 45 54 63 72
02.10 20 30 40
源碼解析
在這個(gè)for循環(huán)中,i的值永遠(yuǎn)不會(huì)達(dá)到100,因?yàn)橐坏﹊到達(dá)74,break語(yǔ)句就會(huì)中斷循環(huán)。通常,只有在不知道中斷條件何時(shí)滿足時(shí),才需要這樣使用break。只要i不能被9整除,continue語(yǔ)句就會(huì)使執(zhí)行過(guò)程返回到循環(huán)的最開(kāi)頭(這使i值遞增)。如果能夠整除,則將值顯示出來(lái)。輸出結(jié)果之所以顯示0,是由于0%9等于0。
最后,可以看到一個(gè)“無(wú)窮while循環(huán)”的情況。然而,循環(huán)內(nèi)部有一個(gè)break語(yǔ)句,可中止循環(huán)。除此之外,大家還會(huì)看到continue語(yǔ)句執(zhí)行序列移回到循環(huán)的開(kāi)頭,而沒(méi)有去完成continue語(yǔ)句之后的所用內(nèi)容。(只有在i能被10整除時(shí)才打印出值。)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java基礎(chǔ)知識(shí)精通循環(huán)結(jié)構(gòu)與break及continue
- Java中break、continue、return在for循環(huán)中的使用
- JAVA控制流程break?continue的示例代碼
- Java流程控制break和continue
- Java continue break制作簡(jiǎn)單聊天室程序
- Java中的break和continue關(guān)鍵字的使用方法總結(jié)
- Java中break、continue、return語(yǔ)句的使用區(qū)別對(duì)比
- java中break和continue區(qū)別及使用場(chǎng)合分析
- Java循環(huán)結(jié)構(gòu)之多重循環(huán)及continue?break
相關(guān)文章
springboot+redis分布式鎖實(shí)現(xiàn)模擬搶單
這篇文章主要介紹了springboot+redis分布式鎖實(shí)現(xiàn)模擬搶單,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03Java實(shí)現(xiàn)一個(gè)達(dá)達(dá)租車系統(tǒng)的步驟詳解
這篇文章主要給大家介紹了利用Java實(shí)現(xiàn)一個(gè)達(dá)達(dá)租車系統(tǒng)的步驟,文中給出了詳細(xì)的實(shí)現(xiàn)思路和示例代碼,并在文末給出了完整的源碼供大家學(xué)習(xí)下載,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-04-04tomcat部署java web項(xiàng)目遇到的問(wèn)題及解決方法
這篇文章主要介紹了tomcat部署java web項(xiàng)目遇到的問(wèn)題及解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07Mybatisplus集成springboot完成分頁(yè)查詢功能(示例代碼)
今天小編給大家分享Mybatisplus集成springboot完成分頁(yè)查詢功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2023-11-11用Java實(shí)現(xiàn)春聯(lián)?支持自定義字體顏色
大家好,本篇文章主要講的是用Java編寫春聯(lián)?支持自定義字體顏色,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01Java中的隱式參數(shù)和顯示參數(shù)實(shí)例詳解
這篇文章主要介紹了Java中的隱式參數(shù)和顯示參數(shù)是什么,另外還有兩個(gè)小例子幫助大家理解,需要的朋友可以參考下。2017-08-08Netty中ChannelPoolHandler調(diào)用處理程序詳解
這篇文章主要介紹了Netty中ChannelPoolHandler調(diào)用處理程序詳解,Netty 是基于 Java NIO 的異步事件驅(qū)動(dòng)的網(wǎng)絡(luò)應(yīng)用框架,使用 Netty 可以快速開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用,Netty 提供了高層次的抽象來(lái)簡(jiǎn)化 TCP 和 UDP 服務(wù)器的編程,但是你仍然可以使用底層的 API,需要的朋友可以參考下2023-11-11Spring學(xué)習(xí)通過(guò)AspectJ注解方式實(shí)現(xiàn)AOP操作
這篇文章主要為大家介紹了Spring學(xué)習(xí)通過(guò)AspectJ注解方式實(shí)現(xiàn)AOP操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Java中Lombok的@Builder注解注意事項(xiàng)
這篇文章主要介紹了Java中Lombok的@Builder注解注意事項(xiàng),使用Lombok也會(huì)造成很多問(wèn)題,尤其@Builder 有個(gè)很大的坑,已經(jīng)見(jiàn)過(guò)好幾次由于使用@Builder注解導(dǎo)致默認(rèn)值失效的問(wèn)題,如果測(cè)試時(shí)沒(méi)有在意這個(gè)問(wèn)題,就很容易引發(fā)線上問(wèn)題,需要的朋友可以參考下2023-12-12