所謂的流程控制是指「根據不同條件來執行不同的程式邏輯」,其中最常見的就是判斷式。
判斷式讓程式能夠根據條件來選擇不同的執行路徑,常見的判斷式包括 if-else
和 switch
。
if-else 判斷式
if-else 判斷式顧名思義,如果符合條件的話走這,不然就走那。
基本的寫法如下
if (條件) {
// 當條件為 true 時執行這裡的程式
} else {
// 當條件為 false 時執行這裡的程式
}
下列範例用來說明是否已經成年,
如果age大於等於18,就印出「成年」;反之,如果age小於18,就印出「未成年」。
int age = 18;
if (age >= 18) {
System.out.println("成年");
} else {
System.out.println("未成年");
}
int score = 75;
if (score >= 90) {
System.out.println("優");
} else if (score >= 80) {
System.out.println("甲");
} else if (score >= 70) {
System.out.println("乙");
} else {
System.out.println("未達標準");
}
不論有多少個 else if,程式只會執行其中一個符合條件的分支內的程式。當第一個 if 條件為 true 時,會直接執行該區塊,並跳過其餘的 else if 或 else。如果第一個條件不成立,程式會繼續檢查接下來的 else if 條件,直到找到符合的條件為止。一旦符合某個 else if,它後面的 else if 和 else 區塊都不會再進行判斷。如果所有 if 和 else if 條件都不成立,最後會進入 else 區塊(若有寫else區塊的話)。
switch 判斷式
switch 判斷式適合用來處理多個具體值的情況。
switch (變數) {
case 值1:
// 當變數等於 值1 時執行這裡的程式
break;
// 遇到break就跳出switch,若無break,則會繼續執行下一條case
case 值2:
// 當變數等於 值2 時執行這裡的程式
break;
default:
// 當變數不符合以上任何條件時執行這裡的程式
}
以一周七日為例
int day = 2;
switch (day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
// ... 以此類推
default:
System.out.println("未知");
}
另外,也能使用**三元運算子(Ternary Operator)**進行條件判斷,可以使程式碼顯得更簡潔,三元運算子適合用在簡單條件下(非黑即白的概念)的選擇。
例如:
int age = 18;
String result = (age >= 18) ? "成年" : "未成年";
System.out.println(result);