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

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

1. if 結構

第一種狀況,簡單的判斷,意思是:若是知足某個條件,就會執行。spa

若是(條件知足) {
    作某些事情
}
int age = 20;
if (age > 18) {
 System.out.println("你有投票權利");
}

執行結果:code

你有投票權利

也能夠簡寫,可是不建議這樣作,由於語句比較多的狀況下,程序的可讀性很差。blog

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

2. if - else 結構

若是知足A條件,就執行 a 操做,不然執行 b操做。rem

若是(知足A) {
  執行 a 操做
} 不然 {
  執行 b 操做
}

實例:it

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

結果輸出:class

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

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語句。
相關文章
相關標籤/搜索