Java在流程控制語句中,涉及到的關鍵字 if-else\while\do-while\for\return\break以及選擇語句switch.
4.1 true和false
所有條件語句都利用條件表達式的真或假來決定執行路徑。也就是說條件表達式的值最后為布爾類型,而布爾類型無法由基本類型轉換,故一些錯誤能夠避免,這些錯誤在第三章介紹了,如while(a) ,a為int類型,會報錯。
4.2 if-else
基本形式: if(Boolean-expression)。條件表達式最后值為布爾類型。
4.3 迭代
while\do-while\for用來控制循環,也叫她們為迭代語句(iteration statement).
while(Boolean-expression) statement
do
statement
while(Boolean-expression)
for(initialization;Boolean-expression:step)
statement
注意,在initialization中的變量定義后,他的作用范圍只限制于for循環中。
4.3.3 逗號操作符
JAVA里唯一用到逗號操作符的地方就是for 循環的控制表達式。它可以在for語句內定義多個變量,變量必須有相同的類型。
4.4 Foreach語法
任何一個數組都可以使用foreach。
foreach語法不僅在錄入代碼時可以節省時間,并且閱讀起來更容易得多。它說明你在做什么(獲取數組中的一個元素),而不是給出你正在做的細節(建立索引)。
4.5 return
JAVA中有多個關鍵詞表示無條件分支,只是表示這個分支無需任何測試即可發生。 如:return\break\continue.
return的話,注意,確保每一條代碼路徑都有返回一個值。
4.6 break 和continue
break用于強行退出循環,不執行循環中的剩余語句。而continue則停止執行當前的迭代,然后退回循環起始處,開始下一次迭代。
4.7 goto
goto起源于匯編語言的程序控制:“若條件A成立,則跳到這里,否則跳到那里”。
java中沒有goto。然而java也能提供類似于跳轉的操作,其實是中斷迭代語句的一種方法----標簽。
格式——— label1:
標簽唯一作用的地方剛好是在迭代語句之前,即在標簽和迭代語句之前無任何語句。當標簽和break一起使用時,就能夠跳出最里層循環。非常方便。
看一段代碼
label1:
outer-iteration{
inner-iteration{
//...
break; //1
//...
continue;//2
//...
continue label1; //3
//...
break label1;//4
}
}
1:break中斷內部迭代,執行外部迭代剩下部分。
2:停止余下的內容,返回內部迭代起始處繼續。
3:中斷內部迭代以及外部迭代,直接轉到label1處,繼續執行外部迭代。
4:中斷內部迭代以及外部迭代,直接轉到label1處,不進入迭代。
例子:
int i=0;
outer:
for(;true;){
inner:
for(;i<10;i++){
System.out.println("i ="+i);
if(i==2){
System.out.println("continue");
continue;
}
if(i==3){
System.out.println("break");
i++;
break;
}
if(i==7){
System.out.println("continue outer");
i++;
continue outer;
}
if(i==8){
System.out.println("break outer");
break outer;
}
for(int k=0;k<5;k++){
if(k==3){
System.out.println("continue inner");
continue inner;
}
}
}
}
continue在for循環中,返回到起始處,注意會進行累加運算,而break 不會。
4.8 switch
是一種選擇語句,會根據整數表達式的值,去尋找。
switch(integral-selector){
case intergral-value1:statement;break;
case intergral-value1:statement;break;
default:statement;
}
- Integral-selector(整數選擇因子)是一個能產生整數值的表達式。
- 這里使用break能夠讓其跳出循環,不然會繼續執行下面的statement.
- 注意選擇因子必須是int或char那樣的整數值。