詳解JAVA流程控制語(yǔ)句
第一節(jié) JAVA條件語(yǔ)句之if語(yǔ)句
1.單獨(dú)的if語(yǔ)句,語(yǔ)法:if(條件){條件成立時(shí)執(zhí)行的代碼};如果if成立時(shí)執(zhí)行的語(yǔ)句只有一條,可以省略大括號(hào),如果是多句不可省略,比如某些方法if(條件),return;如果滿足此條件跳出方法。
2.條件語(yǔ)句之if…else,if(條件的布爾表達(dá)算式){符合條件則執(zhí)行的代碼}else{不符合執(zhí)行的代碼};
3.多重if語(yǔ)句,if(條件1){代碼塊1}else if(條件2){代碼塊2}else{代碼3};在條件 1 不滿足的情況下,才會(huì)進(jìn)行條件 2 的判斷;當(dāng)前面的條件均不成立時(shí),才會(huì)執(zhí)行 else 塊內(nèi)的代碼。
4.嵌套if語(yǔ)句,if(條件1){if(條件2){代碼塊1}else{代碼塊2}}else{代碼塊3};嵌套if語(yǔ)句,只有當(dāng)外層 if 的條件成立時(shí),才會(huì)判斷內(nèi)層 if 的條件。
第二節(jié) JAVA條件語(yǔ)句之switch
當(dāng)需要對(duì)選項(xiàng)進(jìn)行等值判斷時(shí),使用 switch 語(yǔ)句更加簡(jiǎn)潔明了。
switch(表達(dá)式){ case1:執(zhí)行代碼1; break; case2:執(zhí)行代碼2; break; case3:執(zhí)行代碼3; break; ...... case值n:執(zhí)行代碼n; break; default:默認(rèn)執(zhí)行的代碼; }
執(zhí)行過(guò)程:當(dāng) switch 后表達(dá)式的值和 case 語(yǔ)句后的值相同時(shí),從該位置開(kāi)始向下執(zhí)行,直到遇到 break 語(yǔ)句或者 switch 語(yǔ)句塊結(jié)束;如果沒(méi)有匹配的 case 語(yǔ)句則執(zhí)行 default 塊的代碼。
注意:
1、 switch 后面小括號(hào)中表達(dá)式的值必須是整型或字符型;
2、 case 后面的值可以是常量數(shù)值,如 1、2;也可以是一個(gè)常量表達(dá)式,如 2+2 ;但不能是變量或帶有變量的表達(dá)式,如 a * 2;
3、 case 匹配后,執(zhí)行匹配塊里的程序代碼,如果沒(méi)有遇見(jiàn) break 會(huì)繼續(xù)執(zhí)行下一個(gè)的 case 塊的內(nèi)容,直到遇到 break 語(yǔ)句或者 switch 語(yǔ)句塊結(jié)束。如下面的代碼運(yùn)行結(jié)果:會(huì)將四個(gè)獎(jiǎng)勵(lì)全部輸出了一遍。
int num=1; switch(num){ case 1: System.out.println("獎(jiǎng)勵(lì)筆記本一臺(tái)"); case 2: System.out.println("獎(jiǎng)勵(lì)I(lǐng)PAD2一個(gè)"); case 3: System.out.println("獎(jiǎng)勵(lì)移動(dòng)電源一個(gè)"); case 4: System.out.println("獎(jiǎng)勵(lì)U盤(pán)一個(gè)"); }
4、 還可以把功能相同的 case 語(yǔ)句合并起來(lái),如:
case 1: case 2: System.out.println("獎(jiǎng)勵(lì)I(lǐng)PAD2一個(gè)");
5、 default 塊可以出現(xiàn)在任意位置,也可以省略
第三節(jié) JAVA循環(huán)語(yǔ)句之while
Java
常用的 3 種循環(huán): while 、 do…while 、 for
語(yǔ)法:while(判斷條件){循環(huán)操作} 先判斷后執(zhí)行,執(zhí)行過(guò)程:
< 1 > 判斷 while 后面的條件是否成立( true / false );
< 2 > 當(dāng)條件成立時(shí),執(zhí)行循環(huán)內(nèi)的操作代碼 ,然后重復(fù)執(zhí)行< 1 >、< 2 >, 直到循環(huán)條件不成立為止。
第四節(jié) JAVA循環(huán)語(yǔ)句之do…while
語(yǔ)法:do{循環(huán)操作}while(判斷條件) 先執(zhí)行后判斷,至少被執(zhí)行一次,執(zhí)行過(guò)程:
<1> 先執(zhí)行一遍循環(huán)操作,然后判斷循環(huán)條件是否成立;
<2> 如果條件成立,繼續(xù)執(zhí)行< 1 > 、< 2 >,直到循環(huán)條件不成立為止。
第五節(jié) JAVA循環(huán)語(yǔ)句之for循環(huán)
語(yǔ)法:for(循環(huán)變量;循環(huán)條件;循環(huán)變量變化){循環(huán)操作},執(zhí)行過(guò)程:
<1> 執(zhí)行循環(huán)變量初始化部分,設(shè)置循環(huán)的初始狀態(tài),此部分在整個(gè)循環(huán)中只執(zhí)行一次;
<2> 進(jìn)行循環(huán)條件的判斷,如果條件為 true ,則執(zhí)行循環(huán)體內(nèi)代碼;如果為 false ,則直接退出循環(huán);
<3> 執(zhí)行循環(huán)變量變化部分,改變循環(huán)變量的值,以便進(jìn)行下一次條件判斷;
<4> 依次重新執(zhí)行< 2 >、< 3 >、< 4 >,直到退出循環(huán)。
特點(diǎn):相比 while 和 do…while 語(yǔ)句結(jié)構(gòu)更加簡(jiǎn)潔易讀,三種可以相互替換。
注意:
1、 for 關(guān)鍵字后面括號(hào)中的三個(gè)表達(dá)式必須用 “;” 隔開(kāi),三個(gè)表達(dá)式都可以省略,但 “;” 不能省略。
a. 省略“循環(huán)變量初始化”,可以在 for 語(yǔ)句之前由賦值語(yǔ)句進(jìn)行變量初始化操作。
int i=0;//循環(huán)半兩i在for語(yǔ)句之前賦值 for(;i<10;i++){//省略初始化變量 System.out.println("I LOVE IMOOC!") }
b. 省略“循環(huán)條件”,可能會(huì)造成循環(huán)將一直執(zhí)行下去,也就是我們常說(shuō)的“死循環(huán)”現(xiàn)象。
for(int i=0;;i++){//省略初循環(huán)條件 System.out.println("I LOVE IMOOC!") }
在編程過(guò)程中要避免“死循環(huán)”的出現(xiàn),因此,對(duì)于上面的代碼可以在循環(huán)體中使用 break 強(qiáng)制跳出循環(huán)(關(guān)于 break 的用法會(huì)在后面介紹)。
c. 省略“循環(huán)變量變化”,可以在循環(huán)體中進(jìn)行循環(huán)變量的變化。
for(int i=0;i<10;){ System.out.println("I LOVE IMOOC!") i++;//在循環(huán)體中改變變量i的值 }
2、 for 循環(huán)變量初始化和循環(huán)變量變化部分,可以是使用 “,” 同時(shí)初始化或改變多個(gè)循環(huán)變量的值,代碼中,初始化變量部分同時(shí)對(duì)兩個(gè)變量 i 和 j 賦初值,循環(huán)變量變化部分也同時(shí)對(duì)兩個(gè)變量進(jìn)行變化,如:
for(int i=1,j=5;j<=5;i++,j--){ System.out.println(i+"+"+j+"="+(i+j)); } 運(yùn)行結(jié)果: 1+5=6 2+4=6 3+3=6 4+2=6 5+1=6
3、 循環(huán)條件部分可以使用邏輯運(yùn)算符組合的表達(dá)式,表示復(fù)雜判斷條件,但一定注意運(yùn)算的優(yōu)先級(jí),如:
for(int i=1;i<10&&i!=5;i++){ System.out.println(i); }
第六節(jié) JAVA循環(huán)跳轉(zhuǎn)語(yǔ)句break及continue
break語(yǔ)句會(huì)跳出循環(huán),執(zhí)行后面的代碼。
continue的作用是跳過(guò)循環(huán)體中剩余的語(yǔ)句執(zhí)行下一次循環(huán)。
第七節(jié) JAVA循環(huán)語(yǔ)句之多重循環(huán)
循環(huán)體中包含循環(huán)語(yǔ)句的結(jié)構(gòu)稱(chēng)為多重循環(huán)。三種循環(huán)語(yǔ)句可以自身嵌套,也可以相互嵌套,最常見(jiàn)的就是二重循環(huán)。在二重循環(huán)中,外層循環(huán)每執(zhí)行一次,內(nèi)層循環(huán)要執(zhí)行一圈。如下圖所示:
有興趣的朋友可以參考下
相關(guān)文章
Java后臺(tái)開(kāi)發(fā)之表單提交之前驗(yàn)證
這篇文章主要介紹了Java后臺(tái)開(kāi)發(fā)之表單提交之前驗(yàn)證的實(shí)現(xiàn)代碼,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友參考下吧2017-02-02用IDEA創(chuàng)建SpringBoot項(xiàng)目的詳細(xì)步驟記錄
Idea有著非常簡(jiǎn)便的Spring Boot新建過(guò)程,同時(shí)依靠pom自動(dòng)下載依賴(lài),下面這篇文章主要給大家介紹了關(guān)于用IDEA創(chuàng)建SpringBoot項(xiàng)目的詳細(xì)步驟,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08Spring?Boot簡(jiǎn)單實(shí)現(xiàn)文件上傳功能
這篇文章主要介紹了Spring?Boot簡(jiǎn)單實(shí)現(xiàn)文件上傳功能,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08SpringBoot動(dòng)態(tài)定時(shí)任務(wù)實(shí)現(xiàn)完整版
最近有幸要開(kāi)發(fā)個(gè)動(dòng)態(tài)定時(shí)任務(wù),這里簡(jiǎn)單再梳理一下,下面這篇文章主要給大家介紹了關(guān)于SpringBoot動(dòng)態(tài)定時(shí)任務(wù)實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02SpringCloud Eureka 服務(wù)注冊(cè)實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了SpringCloud Eureka 服務(wù)注冊(cè)實(shí)現(xiàn)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10簡(jiǎn)單了解Spring Cloud Alibaba相關(guān)知識(shí)
這篇文章主要介紹了簡(jiǎn)單了解Spring Cloud Alibaba相關(guān)知識(shí),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10MyBatis模糊查詢報(bào)錯(cuò):ParserException: not supported.pos&n
本文主要介紹了MyBatis模糊查詢報(bào)錯(cuò):ParserException: not supported.pos 問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04Springboot配置過(guò)濾器實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Springboot配置過(guò)濾器實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08springboot時(shí)間格式化的五種方法總結(jié)(解決后端傳給前端的時(shí)間顯示不一致)
這篇文章主要給大家介紹了關(guān)于springboot時(shí)間格式化的五種方法,文中介紹的方法解決了后端傳給前端的時(shí)間顯示不一致,文中通過(guò)圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01一場(chǎng)由Java中Integer引發(fā)的踩坑實(shí)戰(zhàn)
Java中的數(shù)據(jù)類(lèi)型分為基本數(shù)據(jù)類(lèi)型和復(fù)雜數(shù)據(jù)類(lèi)型int是前者而integer是后者(也就是一個(gè)類(lèi)),下面這篇文章主要給大家介紹了關(guān)于由Java中Integer引發(fā)的踩坑實(shí)戰(zhàn),需要的朋友可以參考下2022-11-11