Java流程控制
分支結構
用於根據條件來選擇性的執行某段代碼;
- if條件語句
使用布爾表達式或布爾值作爲分支條件來進行分支控制;有三種形式,if;if,else;if,else if,else;
第一種形式
if (logic expression) {
statement...
}
第二種形式
if (logic expression) {
statement...
} else {
statement...
}
第三種形式
if (logic expression) {
statement...
} else if (logic expression) {
statement...
} else {
statement...
}
建議使用過程中不要省略if、else if、else 後面的花括號(具備更好的可讀性和減少錯誤的可能);
- switch條件語句
switch後面只能跟byte、short、char、int四種整數類型,枚舉類型,java.lang.String類型(java7開始,不能是StringBuffer,StringBuilder類型);
switch(expression) {
case condition1:
statement...;
break;
case condition2:
statement...;
break;
case condition3:
statement...;
break;
default:
statement...;
}
因爲switch語句執行時是先求出expression表達式的值,然後拿這個表達式去跟case標籤後面的值進行比較,如果遇到相等的值,開始執行這個case後面的代碼,就不再與後面的case,default標籤的值進行比較,直到遇到break,纔會結束;所以在使用中,每個case後面需加上break,除非你希望程序繼續執行當前case外的代碼塊;
循環結構
用於根據循環條件重複執行某段代碼;
- while循環
init_statement;//初始化語句
while(test_expression) {//循環條件
statement;
iteration_statement;//迭代語句
}
while每次循環前都會對test_expression循環條件進行判斷,如果爲true,則執行循環體,否則跳過循環體;注意,如果在while循環條件的表達式的括號加;(eg:while(test_expression);{}),則將會進入死循環狀態;
- do while循環
do while 與 while 的區別在於,while總是先判斷條件,條件爲真,才執行循環體;而do while 是先執行循環體再判斷循環條件,如果爲真則繼續執行,否則退出循環體;
init_statement;//初始化語句
do {
statement;
iteration_statement;//迭代語句
} while (test_expression);//循環條件
- for循環
for(init_statement; test_expression; iteration_statement) {
statement;
}
增強for循環
for(type element: array){
statement;
}
執行時先執行初始化語句 init_statement,初始化語句只在循環開始前執行一次;每次執行循環體前先進行 test_expression循環條件值的判斷,如果循環條件返回 true,才執行循環體;每次循環體執行完畢後,執行迭代語句 iteration_statement。
for 循環與 while,do while 循環不一樣;由於 for 循環的迭代語句沒有跟循環體放在一起,所以不管是否遇到 continue 語句來結束本次循環,迭代語句都會被執行;而 while 和 do while 語句的迭代語句是和循環體放在一起,如遇到 continue 語句來結束循環體,則迭代語句(迭代語句放在continue後面)不會被執行;