主要分為兩種惧互,Java** 循環(huán)控制和條件判斷**。
1. 循環(huán)控制
可能存在一種情況喇伯,當我們需要執(zhí)行的代碼塊數(shù)次喊儡,通常被稱為一個循環(huán)。
Java有非常靈活的三循環(huán)機制稻据“拢可以使用以下三種循環(huán)之一:
- while 循環(huán)
- do...while 循環(huán)
- for 循環(huán)
while 循環(huán) ,特點:先判斷,后執(zhí)行
while循環(huán)是一個控制結(jié)構(gòu)匆赃,可以重復(fù)的特定任務(wù)次數(shù)淤毛。
while循環(huán)的語法是:
while(Boolean_expression)
{
//Statements
}```
在執(zhí)行時,如果布爾表達式的結(jié)果為真算柳,則循環(huán)中的動作將被執(zhí)行低淡。只要該表達式的結(jié)果為真,執(zhí)行將繼續(xù)下去瞬项。
在這里蔗蹋,while循環(huán)的關(guān)鍵點是循環(huán)可能不會永遠運行。當表達式進行測試滥壕,結(jié)果為假纸颜,循環(huán)體將被跳過,在while循環(huán)之后的第一個語句將被執(zhí)行绎橘。
![while循環(huán).png](http://upload-images.jianshu.io/upload_images/2293787-b29b009c17bd9283.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
這將產(chǎn)生以下結(jié)果:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19```
do...while 循環(huán) 特點:先執(zhí)行胁孙,后判斷
do ... while循環(huán)類似于while循環(huán),不同的是一個do ... while循環(huán)是保證至少執(zhí)行一次称鳞。
do...while循環(huán)的語法是:
do
{
//循環(huán)操作
} while (Boolean_expression);```
請注意涮较,布爾表達式出現(xiàn)在循環(huán)的結(jié)尾,所以在循環(huán)中的語句執(zhí)行前一次布爾測試冈止。
如果布爾表達式為真狂票,控制流跳回,并且在循環(huán)中的語句再次執(zhí)行熙暴。這個過程反復(fù)進行闺属,直到布爾表達式為假。
public static void main(String[] args) {
/**
* do...while 至少會被執(zhí)行一次
*/
int sum=0; //保存偶數(shù)的和
int num=2; //代表1-50之間的偶數(shù)
do {
sum =sum+num; //累加求和
num=num+2; //每執(zhí)行一次將變量值加2
} while (num<=50); //當變量小于或等于50時重復(fù)執(zhí)行循環(huán)
System.out.println("50以內(nèi)的偶數(shù)之和為 :"+sum);
}
運行結(jié)果如下:
50以內(nèi)的偶數(shù)之和為 :650
###for 循環(huán)
for循環(huán)是一個循環(huán)控制結(jié)構(gòu)周霉,可以有效地編寫需要執(zhí)行的特定次數(shù)的循環(huán)掂器。知道一個任務(wù)要重復(fù)多少次的時候,for循環(huán)是有好處的俱箱。
for循環(huán)的語法是:
// 循環(huán)變量初始化;循環(huán)條件;循環(huán)變量變化部分
for(initialization; Boolean_expression; update)
{
//Statements
}```
- 執(zhí)行循環(huán)變量初始化部分国瓮,設(shè)置循環(huán)的初始狀態(tài),此部分在整個循環(huán)中只執(zhí)行一次
- 進行循環(huán)條件的判斷狞谱,如果條件為 true 乃摹,則執(zhí)行循環(huán)體內(nèi)代碼;如果為 false 跟衅,則直接退出循環(huán)
- 執(zhí)行循環(huán)變量變化部分孵睬,改變循環(huán)變量的值,以便進行下一次條件判斷
- 依次重新執(zhí)行< 2 >与斤、< 3 >肪康、< 4 >荚恶,直到退出循環(huán)
特點:相比 while 和 do...while 語句結(jié)構(gòu)更加簡潔易讀
運行結(jié)果如下:
1到100之間不能被3整除的數(shù)之和為:3367
break 關(guān)鍵字
生活中,我們經(jīng)常會因為某些原因中斷既定的任務(wù)安排磷支。如在參加 10000 米長跑時谒撼,才跑了 500 米就由于體力不支,需要退出比賽雾狈。在 Java 中廓潜,我們可以使用 break 語句退出指定的循環(huán),直接執(zhí)行循環(huán)后面的代碼善榛。
運行結(jié)果如下:
當前的累加值為:21
continue 關(guān)鍵字
continue關(guān)鍵字可以在任一環(huán)的控制結(jié)構(gòu)使用辩蛋。它使循環(huán)立即跳轉(zhuǎn)到循環(huán)的下一次迭代。
- 在for循環(huán)中移盆,continue關(guān)鍵字會導(dǎo)致控制流立即跳轉(zhuǎn)到更新語句悼院。
- 在一個while循環(huán)或do/while循環(huán),控制流立即跳轉(zhuǎn)到布爾表達式咒循。
運行結(jié)果如下:
1到10之間的所有偶數(shù)的和為:30
Java 循環(huán)語句之多重循環(huán)
循環(huán)體中包含循環(huán)語句的結(jié)構(gòu)稱為多重循環(huán)据途。三種循環(huán)語句可以自身嵌套,也可以相互嵌套叙甸,最常見的就是二重循環(huán)颖医。在二重循環(huán)中,外層循環(huán)每執(zhí)行一次裆蒸,內(nèi)層循環(huán)要執(zhí)行一圈熔萧。
例如:使用 * 打印長方形:
運行結(jié)果如下:
*********
*********
*********
*********
執(zhí)行流程:當 i = 1 時,外層循環(huán)條件成立僚祷,進入內(nèi)層循環(huán)佛致,開始打印第一行內(nèi)容。此時辙谜, j 從 1 開始晌杰,循環(huán) 8 次,內(nèi)層循環(huán)結(jié)束后換行筷弦,實現(xiàn)第一行 8 個 * 的輸出。接下來返回外層循環(huán) i 變?yōu)?2 抑诸,準備打印下一行烂琴,依此類推,直到完成長方形的打印蜕乡。
例如:使用 * 打印直角三角形:
運行結(jié)果如下:
打印直角三角形
*
**
***
****
Java 條件判斷
在 Java 中有兩種類型的條件判斷語句奸绷,它們分別是:
- if 語句
- switch 語句
生活中,我們經(jīng)常需要先做判斷层玲,然后才決定是否要做某件事情号醉。例如反症,如果考試成績大于 90 分,則獎勵一個 IPHONE 5S 畔派。對于這種“需要先判斷條件铅碍,條件滿足后才執(zhí)行的情況”,就可以使用if 條件語句實現(xiàn)线椰。
語法:
if(條件){
//條件成立時執(zhí)行的代碼
}
if...else 語句
任何 if 語句后面可以跟一個可選的 else 語句胞谈,當布爾表達式為 false,語句被執(zhí)行憨愉。
語法:
if(條件){
//條件成立時執(zhí)行的代碼
}else{
//條件不成立時執(zhí)行的代碼
}
多重 if 語句
if 后面可以跟一個可選的 else if...else 語句烦绳,在測試不同條件下單一的 if 語句和 else if 語句是非常有用的。
當使用 if , else if , else 語句時有幾點要牢記配紫。
- 一個 if 語句可以有0個或一個 else 語句 且它必須在 else if 語句的之后径密。
- 一個 if 語句 可以有0個或多個 else if 語句且它們必須在 else 語句之前。
- 一旦 else if 語句成功, 余下 else if 語句或 else 語句都不會被測試執(zhí)行躺孝。
語法:
if(條件1){
//代碼塊1
}else if(條件2){
//代碼塊1
}else{
//代碼塊3
}```
執(zhí)行過程:
****[![](http://upload-images.jianshu.io/upload_images/2293787-7d8e9c73bdde53b7.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://img.mukewang.com/5364a1db0001b6fb03790248.jpg)
##### 嵌套 if 語句
**嵌套 if 語句**享扔,只有當外層 if 的條件成立時,才會判斷內(nèi)層 if 的條件括细。例如伪很,活動計劃的安排,如果今天是工作日奋单,則去上班锉试,如果今天是周末,則外出游玩览濒;同時呆盖,如果周末天氣晴朗,則去室外游樂場游玩贷笛,否則去室內(nèi)游樂場游玩应又。
語法:
**[![](http://upload-images.jianshu.io/upload_images/2293787-360db11922191a7e.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://img.mukewang.com/5364f3be000121bf01480198.jpg)**
執(zhí)行過程:
**[![](http://upload-images.jianshu.io/upload_images/2293787-5bce3e35fdd7050e.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://img.mukewang.com/5364bd8f0001c91e03690285.jpg)**
###switch 語句
當需要對選項進行**等值判斷**時,使用 switch 語句更加簡潔明了乏苦。
語法:
**[![](http://upload-images.jianshu.io/upload_images/2293787-e14c473b7d7b0e98.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://img.mukewang.com/5364f4c800010b1f01620289.jpg)**
執(zhí)行過程:當 switch 后表達式的值和 case 語句后的值相同時株扛,從該位置開始向下執(zhí)行,直到遇到 break 語句或者 switch 語句塊結(jié)束汇荐;如果沒有匹配的 case 語句則執(zhí)行 default 塊的代碼洞就。
![switch.png](http://upload-images.jianshu.io/upload_images/2293787-b784ca007bb0762f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
運行結(jié)果如下:
Well done
Your grade is C```