9. 程序的控制流-選擇結構 【連載 9】

9. 程序的控制流-選擇結構 【連載 9】

程序執行的過程,我們可以把它認爲是一個流,實際的業務需求會根據不同的情況,來控制程序不同的流轉。這篇文章來討論其中的一種程序流轉情況,選擇控制流轉。Java 中對應的結構爲控制結構。

1. if 結構

第一種情況,簡單的判斷,意思是:如果滿足某個條件,就會執行。

如果(條件滿足) {
    做某些事情
}
int age = 20;
if (age > 18) {
 System.out.println("你有投票權利");
}

執行結果:

你有投票權利

也可以簡寫,但是不建議這樣做,因爲語句比較多的情況下,程序的可讀性不好。

if (age > 18) System.out.println("你有投票權利");

2. if - else 結構

如果滿足A條件,就執行 a 操作,否則執行 b操作。

如果(滿足A) {
  執行 a 操作
} 否則 {
  執行 b 操作
}

實例:

int age = 17;
if (age > 18) {
  System.out.println("你有投票權利。");
} else {
  System.out.println("對不起,你還未到投票的年齡。");
}

結果輸出:

對不起,你還未到投票的年齡。

3. if -else if - else 結構

如果滿足 A 條件,執行 a操作,如果滿足 B 條件,執行 b操作,否則都執行 c操作。

如果 (滿足A) {
  執行 a 操作
} 如果 (滿足B) {
  執行 b 操作
} 否則 {
  執行 c 操作
}

實例:根據年齡收費的遊樂場,規則爲

  • 4 歲以下免費
  • 4 到 18 歲收費 40 元
  • 18 歲(含 18)以上收費 70 元

Java 程序實現:

int age = 13;
if (age < 4) {
  System.out.println("你需要消費爲 0 元");
} else if (age < 18) {
  System.out.println("你需要消費爲 40 元");
} else {
  System.out.println("你需要消費爲 70 元");
}

可以使用多個 else if

int age = 13;
int price;
if (age < 4) {
  price = 0;
} else if (age < 18) {
  price = 40;
} else if (age < 40) {
  price = 60
} else {
  price = 70;
}
System.out.println("你需要消費爲: ¥" + price);

else 可以省略:

int age = 13;
int price;
if (age < 4) {
  price = 0;
} else if (age < 18) {
  price = 40;
} else if (age < 40) {
  price = 60
} 
System.out.println("你需要消費爲: ¥" + price);

4. switch 結構

一個變量,當等於不同的值,執行不同的操作。

if-else if 語句表達:

int month = 5;
if (month == 5) {
  System.out.println("5月");
} else if (month = 6) {
  System.out.println("6月");
} else if (month = 7) {
  System.out.println("7月");
} else if (month = 8) {
  System.out.println("8月");
} else {
  System.out.println("其他月");
}

使用 switch 結構:

int month = 5;
switch(month) {
  case 5 :
    System.out.println("5月");
    break;//可選
  case 6 : 
    System.out.println("6月");
    break;//可選
  case 7 : 
    System.out.println("7月");
    break;  //可選
  case 8 : 
    System.out.println("8月");
    break;//可選
  default ://可選
    System.out.println("其他月");
}

switch語句具有如下規則:

  • switch語句中的變量類型只能爲Stringbyteshortint或者char
  • switch語句可以擁有多個case語句,每個case後面跟一個要比較的值和冒號。
  • case語句中的值的數據類型必須與變量的數據類型相同,而且只能是常量或者字面常量。
  • 當變量的值與case語句的值相等時,那麼case語句之後的語句開始執行,直到break語句出現纔會跳出switch語句。
  • 當遇到break語句時,switch語句終止。程序跳轉到switch語句後面的語句執行。case語句不必須要包含break語句。如果沒有break語句出現,程序會繼續執行下一條case語句,直到出現break語句。
  • switch語句可以包含一個default分支,該分支必須是switch語句的最後一個分支。default在沒有case語句的值和變量值相等的時候執行。default分支不需要break語句。扣扣交流羣:468439140
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章