java中break和continue源碼解析
在自己學(xué)習(xí)java語言的過程中,很容易把break和continue的用法混淆。為了便于以后快速查閱及溫習(xí),在此特留學(xué)習(xí)筆記一份。
簡述
在任何迭代語句的主體部分,都可以用break和continue控制循環(huán)的流程。其中,break用于強(qiáng)行退出循環(huán),不執(zhí)行循環(huán)中剩余的語句。而continue則停止執(zhí)行當(dāng)前迭代,然后退回循環(huán)起始處,開始下一次迭代。
源碼
下面這個(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語句就會(huì)中斷循環(huán)。通常,只有在不知道中斷條件何時(shí)滿足時(shí),才需要這樣使用break。只要i不能被9整除,continue語句就會(huì)使執(zhí)行過程返回到循環(huán)的最開頭(這使i值遞增)。如果能夠整除,則將值顯示出來。輸出結(jié)果之所以顯示0,是由于0%9等于0。
最后,可以看到一個(gè)“無窮while循環(huán)”的情況。然而,循環(huán)內(nèi)部有一個(gè)break語句,可中止循環(huán)。除此之外,大家還會(huì)看到continue語句執(zhí)行序列移回到循環(huán)的開頭,而沒有去完成continue語句之后的所用內(nèi)容。(只有在i能被10整除時(shí)才打印出值。)
以上就是本文的全部內(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制作簡單聊天室程序
- Java中的break和continue關(guān)鍵字的使用方法總結(jié)
- Java中break、continue、return語句的使用區(qū)別對(duì)比
- java中break和continue區(qū)別及使用場合分析
- Java循環(huán)結(jié)構(gòu)之多重循環(huán)及continue?break
相關(guān)文章
springboot+redis分布式鎖實(shí)現(xiàn)模擬搶單
這篇文章主要介紹了springboot+redis分布式鎖實(shí)現(xiàn)模擬搶單,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧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í)下載,需要的朋友可以參考借鑒,下面來一起看看吧。2017-04-04tomcat部署java web項(xiàng)目遇到的問題及解決方法
這篇文章主要介紹了tomcat部署java web項(xiàng)目遇到的問題及解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07Mybatisplus集成springboot完成分頁查詢功能(示例代碼)
今天小編給大家分享Mybatisplus集成springboot完成分頁查詢功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2023-11-11用Java實(shí)現(xiàn)春聯(lián)?支持自定義字體顏色
大家好,本篇文章主要講的是用Java編寫春聯(lián)?支持自定義字體顏色,感興趣的同學(xué)趕快來看一看吧,對(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 可以快速開發(fā)網(wǎng)絡(luò)應(yīng)用,Netty 提供了高層次的抽象來簡化 TCP 和 UDP 服務(wù)器的編程,但是你仍然可以使用底層的 API,需要的朋友可以參考下2023-11-11Spring學(xué)習(xí)通過AspectJ注解方式實(shí)現(xiàn)AOP操作
這篇文章主要為大家介紹了Spring學(xué)習(xí)通過AspectJ注解方式實(shí)現(xiàn)AOP操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Java中Lombok的@Builder注解注意事項(xiàng)
這篇文章主要介紹了Java中Lombok的@Builder注解注意事項(xiàng),使用Lombok也會(huì)造成很多問題,尤其@Builder 有個(gè)很大的坑,已經(jīng)見過好幾次由于使用@Builder注解導(dǎo)致默認(rèn)值失效的問題,如果測試時(shí)沒有在意這個(gè)問題,就很容易引發(fā)線上問題,需要的朋友可以參考下2023-12-12