標籤:訪問 類型 and 允許 i++ 關鍵詞 方法 逗號操作符 機制
Java的控制語句設計的關鍵字有if-else while do-while for return break和switch。
Java雖然保留goto關鍵字,但不支援goto語句。
1.true和false
所有條件陳述式都利用條件運算式的真或假來決定執行路徑。
Java不允許使用數字作為布爾值使用。
如果想在布爾測試中使用一個非布爾值,如if(a),那麼首先必須使用一個條件運算式將其轉換成布爾值,如if(a!=0)。
2.if-else語句
else是可選的。
格式:
if(Boolean-expression) statement或if(Boolean-expression) //Boolean-expression為真,執行statement1,否則執行statement2 statement1 else statement2//當然也可以嵌套if(Boolean-expression1) statement1else if(Boolean-expression2) statement2else statement3
注意,上面的Boolean-expression必須產生一個布爾結果。
3.迭代
1)while
while(Boolean-expression) //Boolean-expression為真,執行statement statement
2)do-while
do statementwhile(Boolean-expression) //Boolean-expression為真,執行statement
與while唯一區別在於do-while中的語句至少會執行一次。
3)for
for(initialization; Boolean-expression; step) statement
for語句中,先執行initialization語句,然後判斷Boolean-expression結果是否為true,為真則執行statement,接下來會執行step,再次對Boolean-expression結果進行判斷,如此迴圈,直到Boolean-expression結果為false。
for中的initialization和step可以是逗號運算式,這也是Java唯一用到逗號操作符的地方。此外,在initialization部分可以對多個同類型的變數進行定義。
4.foreach文法
foreach可以讓我們在不必建立int變數來對訪問項構成的序列進行計數,它可以自動產生這一項。如下例:
import java.util.*public class ForEachFloat{ public static void main(String[] args){ Random rand = new Random(47); float f[] = new float[10]; for(int i = 0; i < 10; i++) f[i] = rand.nextFloat(); for(float x:f) System.out.println(x); } }
結果如下,for(float x:f)定義了一個float類型的變數x,並將數組f的每個元素一次賦給x。
任何返回一個數組的方法都可以使用foreach。
5.return
return關鍵詞有兩個作用:
a.指定一個方法返回什麼值;
b.導致當前方法退出,並返回那個值。
6.break和continue
break:強制退出迴圈,不執行迴圈中剩餘的語句。
continue:停止執行當前的迭代,然後退回迴圈其實處,開始下一次迴圈。
7.類似goto
Java沒有goto,但具有類似goto的功能,因為都使用“標籤”機制。
標籤格式為 label:
Java中,標籤起作用的唯一地方剛好是迭代語句之前。而在迭代之前設定標籤的唯一理由是我們希望在其中嵌套另一個迭代或一個開關。
break和continue關鍵詞通常只中斷當前迴圈,但和標籤一起使用,會中斷迴圈,跳轉到標籤所在位置。
我們舉例說明break-label和continue-label的區別,為了說明問題,我故意寫了一個死迴圈。如下:
程式的輸出說明帶標籤的continue會跳轉到標籤的位置,並重新進入緊接著標籤後的迴圈。
從輸出的i值也可以看出,i會再次從0開始,說明重新進入了for迴圈。
是break-label的表現:
程式的輸出說明帶標籤的break會中斷並跳出標籤所指的迴圈。
8.switch
根據整數運算式的值,switch語句可以從一系列代碼中選出一段去執行,屬於多路選擇。
格式:
switch(integral-selector){ case integral-vallue1: statement; break; case integral-vallue2: statement; break; case integral-vallue3: statement; break; //... default:statement;}
switch會執行case後的integral-value與integral-selector相等的statement。
default在所有integral-value與integral-selector都不等的情況下執行。
integral-selector必須為int或char類型類似的整數值,如果為字串或者浮點數則switch不工作。
Java之路(三) 控制執行流程