今天要介紹的是「條件式判斷」。我們在前述章節有提前說到這個觀念,為了應付不同程式可能會面對到許多複雜的問題,條件判斷陳述句就顯得十分實用。簡單來說,當 if 條件內的陳述句成立時,就執行對應的程式碼,反之則跳出此判斷。在此章會大量使用到Day 7裡面的邏輯與比較運算子觀念,如果對此部分還不熟悉,可以回到上一節複習!!
If 條件判斷的種類有幾種,最簡單的我們可以用一個 If 概括程式需要被執行的條件。
/* if(condition){
If the condition is True,executed the code.
} */
int temperature = 29;
if(temperature < 30){
System.out.println("The weather was cozy today."); //If(true),so print it out.
}
如果要判斷不同的條件,也可以一次使用多個 If :
int grade = 88;
if(grade >= 90 && grade <= 100)
System.out.println("You got A+.");
if(grade >= 85 && grade <= 89)
System.out.println("You got A.");
if(grade >= 80 && grade <= 84)
System.out.println("You got A-.");
我們可以觀察上面那段程式碼,雖然一樣能達成我們要的效果,但一旦當需要判斷的條件更多就會使程式可讀性(readability)變差。所以我們可以使用 Else敘述句(與 If 是一組的),當其條件判斷為False時,就會執行else裡面的程式碼。
/*多個if判斷改寫*/
int grade = 84;
if(grade < 90)
{
if(grade < 85)
System.out.println("You got A-.");
else
System.out.println("You got A.");
}
else System.out.println("You got A+.");
當判斷的條件都很相似時,可以用「巢狀結構」的模式縮減不必要的判斷。
int grade = 72;
if (grade > 90 && grade <= 100)
System.out.println("Excellent!");
else if (grade > 80 && grade <= 90)
System.out.println("Good!");
else
System.out.println("Not bad.");
以if…else來看,簡單來說就是短版的條件式判斷。主要是能取代一大段的程式碼,多用在替換簡單的if…else敘述。
/* variable = (condition) ? (ifexpressionTrue) : (ifexpressionFalse);*/
int grade = 100;
char GPA;
GPA = (grade >= 90) ? ('A') : ('B');
System.out.println(GPA); /*Outputs : A*/
接著介紹另一種條件判斷- -Switch。與if…else最大的不同在於,涵蓋的case多,常見應用是透過我們自己輸入選擇想要執行的內容。
以下範例提供一個簡易歌單功能選擇列表,透過我們輸入選擇要用的功能。(功能撰寫部分此處尚未介紹,待後續更多內容)
char grade = 'B';
switch(grade) {
case 'A' :
System.out.println("Excellent!");
break;
case 'B' :
System.out.println("Great!");
break;
case 'C' :
System.out.println("Good!");
break;
case 'D' :
System.out.println("Not bad.");
break;
case 'E' :
System.out.println("Don't give up.");
break;
default :
System.out.println("Wrong data!!!");
break;
}
:
break
: 表示一個case的結束。若忘記加,編譯器會一直執行下去直到遇到break.default
: 以上的條件皆不符合時會執行的case.import java.util.Scanner;
public class web {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("請輸入功能編號: ");
int function;
function = input.nextInt();
while(true){
switch(function)
{
case 1 :
System.out.println("歌手查詢");
break;
case 2 :
System.out.println("歌名查詢");
break;
case 3 :
System.out.println("更改資訊");
break;
case 4 :
System.out.println("隨機撥放");
break;
default :
System.out.println("輸入錯誤");
break;
}
}
}
}
以上內容所有錯誤,煩請不吝嗇告知,謝謝您!!!