第六章 熟悉Java的流程控制語句
Java的程序流程控制分爲順序結構、選擇結構、循環結構和跳轉語句。
順序結構:按照程序代碼自上而下執行,直到程序結束,中間沒有任何判斷和跳轉。
選擇結構(分支結構):判斷給定的條件,根據判斷結果控制程序的流程。包括if語句和switch語句。
2.1 if語句:通過判斷給定表達式的值來決定程序的流程。常見if語句的形式有三種:
(1)if(expression){
statement;
}
(2)if(expression){
statement;
}else{
statement;
}
(3)if(expression){
statement;
}else if(expression){
statement;
}
...... //可以有零個或多個else if語句
else{ //最後的else語句可以視情況省略
statement;
}
表達式expression的結果只能是布爾型,即此表達式的結果只能是true或false
當表達式expression爲true時執行if所對應的代碼塊,否則,如果有else則執行else對應的代碼塊。
(2)和(3)是相通的,(3)中如果沒有else if代碼塊就變成(2)。
else語句必須和if或者else if配對使用,else總是與離它最近的if或者else if配對,可以通過大括號改變配對關係。
備註:在流程控制語句中用每對大括號括起來的代碼被稱爲代碼塊,一個代碼塊通常被當做一個整體來執行(除非運行過程中遇到break、continue、return等關鍵字,或者出現異常),這個代碼塊也被稱爲條件執行體。
2.2 switch語句(多分支語句):通過數據匹配的方式實現程序的多分支控制,語法格式如下:
switch(expression){
case value 1:
statement1;
break;
case value 2:
statement2;
break;
...... //可以有多個case代碼塊
case value N:
statementN;
break;
default:
break;
}
expression的返回值類型只能是char、byte、short或int。
switch語句先取得expression的返回值,再根據返回值依次與每個case語句所對應的value值匹配,匹配成功則執行相應的代碼塊。
case語句對應的value值必須爲常量,且各個value值應不同。
break語句用來在執行完相應的case分支語句後跳出switch語句,否則將順序執行後面的語句。某些情況下,多個不同的case值要執行一組相同的操作,可以省略相應代碼塊中的break語句。
default是可選的,當表達式的值與任何的value值都不匹配時,則執行default代碼塊。如果沒有default語句,則程序不做任何操作,直接跳出switch語句。
3. 循環結構:利用循環結構可重複執行某一段代碼,直到不滿足循環條件爲止。循環結構主要有for、while、do-while三種循環語句。
3.1 for語句:適用於明確知道循環次數的情況。語法格式如下:
for(initialization;condition;iteration){
statement;
}
循環的初始化(initialization):只在循環開始前執行一次,通常在此進行迭代變量的定義,該變量將作爲控制整個循環的計數器適用。
條件表達式(condition):一個布爾型表達式,如果值爲真,執行循環體內的語句statement,如果爲假則結束循環。
迭代表達式(iteration):通常是迭代變量的自增或自減運算表達式,在循環體(statement)執行完畢時執行。
3.2 while語句:通常用於重複執行次數不確定的循環。語法格式如下:
while(expression){
statement;
}
expression是一個布爾表達式,while語句首先得到expression的返回值,當返回值爲true時,執行循環體內的語句statement,否則,循環結束。
3.3 do-while語句:do-while與while的區別在於第一次循環時,while是先判斷循環條件,再循環,若條件爲假,則循環體不會被執行。而do-while語句則是先執行循環體後再判斷,即do-while循環至少會執行一次循環體。
4. 跳轉語句:通過跳轉語句可以實現程序流程的跳轉。Java中的跳轉語句包括break語句、continue語句和return語句。
4.1 break語句:break語句可以用在循環語句的內部,用來結束循環。例如:
public static void main(String[] args){
int i=0;
while(i<10){
i++;
if(i==5){
break;
}
System.out.println(i);
}
System.out.println("循環結束");
}
運行結果:輸出1,2,3,4,5以後,將會輸出“循環結束”。
4.2 continue語句:只能用在循環語句內部,用來跳過本次循環,繼續執行下一次循環。在while和do-while循環結構中使用continue語句,表示跳轉到循環條件處繼續執行;而在for循環結構中使用continue語句,表示跳轉到迭代語句處繼續執行。例如:
public static void main(String[] args){
int i==0;
while(i<4){
i++
if(i==2){
continue;
}
System.out.println(i);
}
System.out.println("循環結束");
}
運行後輸出結果將是:1,3,4,循環結束
4.3 return語句:return語句用在方法中,作用是終止當前方法的執行,返回到調用該方法的語句處,並繼續執行程序。語法格式如下:
return [expression];
return語句後面可以帶返回值,也可以不帶。
表達式expression可以是常量、變量、對象等。return語句後面表達式的數據類型必須與方法聲明的數據類型一致。
當程序執行return語句時,先計算表達式的值,然後將表達式的值返回到調用該方法的語句處。
位於return語句後面的代碼塊不會被執行,因此return語句通常位於代碼塊的最後。
5. Java程序的註釋用法:Java有三種註釋方式,分別爲單行註釋、多行註釋和文檔註釋。
單行註釋:以雙斜槓"//"開始,終止於本行結束。用於對一行代碼的簡短說明。
多行註釋:以“/*”開始,以“*/”結束,兩者間所有的字符都是多行註釋的內容。通常用於對文件、方法、數據結構等的說明,或者算法的描述。一般位於方法的前面,起引導作用,也可以根據需要放在其他位置。
文檔註釋:以“/**”開始,以“*/”結束,此間所有字符都是文檔註釋的內容。文檔註釋主要是爲了支持JDK工具javadoc,通過javadoc,文檔註釋將會生成HTML格式的代碼報告,因此文檔註釋應當書寫在類、構造方法、成員方法以及常量或變量的定義之前。