流程控制概述
在一個程序執行的過程中,各條語句的執行順序對程序的結果是有直接影響的。也就是說程序 的流程對運行結果有直接的影響。所以,我們必須清楚每條語句的執行流程。而且,很多時候我們 要通過控制語句的執行順序來實現我們要完成的功能。
順序結構:
程序從上到下逐行地執行,中間沒有任何判斷和跳轉。
順序結構是程序中最簡單最基本的流程控制,沒有特定的語法結構,按照代碼的先後順序,依次執 行,程序中大多數的代碼都是這樣執行的。總的來說:寫在前面的先執行,寫在後面的後執行。
分支結構 :
1. 根據條件,選擇性地執行某段代碼。
2. 有 if,if…else 和 switch 三種基本分支語句。
3. 分支語句之間可以嵌套。
關於 switch 語句的說明:
1) switch(表達式)中表達式的返回值必須是下述幾種類型之一:byte,short,char, int,枚舉,String(JDK7 之後支持);
2) case 子句中的值必須是常量,且所有 case 子句中的值應是不同的;
3) default 子句是可任選的,當沒有匹配的 case 時,執行 default;
4) break 語句用來在執行完一個 case 分支後使程序跳出 switch 語句塊;如果沒有 break,程序會順序執行到 switch 結尾。
if 和 switch 使用場景比較
1) if 語句使用場景
針對結果是 boolean 類型的判斷
針對一個範圍的判斷
針對幾個常量值的判斷
2) switch 語句使用場景
針對幾個常量值的判斷
循環結構 :
1. 根據循環條件,重複性的執行某段代碼。
2. 有 while、do…while、for 三種循環語句。
3. 注:JDK1.5 提供了 foreach 循環,方便的遍歷集合、數組元素。
4. 循環之間可以任意嵌套,但一般嵌套不要超過三層。
循環語句四個組成部分:
1. 初始化部分
一條或者多條語句,這些語句完成一些初始化操作
2. 循環條件部分
這是一個 boolean 表達式,這個表達式能決定是否執行循環體
3. 循環體部分
這個部分是循環體語句,也就是我們要多次做的事情
4. 控制條件語句
在一次循環體結束後,下一次循環判斷條件執行前執行。通過用於控制循環條件中的變量,使得循環在合適的時候結束。
do…while 循環和 while 循環的區別
1) do…while 循環至少會執行一次循環體;
2) while 循環只有在條件成立的時候才執行循環體
特殊流程控制語句
Java 中的 goto 是保留字,目前不能使用。雖然沒有 goto 語句可以增強程序的安全性,但是也帶來 很多不便。比如說,我想在某個循環執行到某一步的時候就結束,現在就做不了這件事情。爲了彌補這 個缺陷,Java 就提供了 break,continue 和 return 來實現控制語句的跳轉和中斷。
樣例:
// 獲取100以內的奇數和,並且當和大於1000時停止循環
public static int getOddSum(){
int sum = 0;
for(int i = 0; i < 100; i++){
if(i%2 == 0){// 如果當前數字爲偶數,跳出本次循環
continue;
}else{
sum += i;
}
if(sum > 1000){
break;// 當sum大於1000時,跳出循環體
}
}
return sum;// 結束方法
}