Java 流程控制 之 分支結構——條件判斷語句


一、判斷語句

  1、判斷語句1-- 單 if 語句(單分支結構)

    語法格式:

if(條件表達式){
  語句體;
}

     執行流程:

      •  首先判斷條件表達式看其結果是 true 還是 false;
      •     如果是 true 就執行語句體;
      •     如果是 false 就不執行語句體。

    流程圖:

  

    Tips:當 if 后面只有一條語句時,可以省略 “{}”,但為了增強程序的可讀性最好不要省略。 

  2、判斷語句2-- if...else 語句(標准的 if 語句)(雙分支結構)

    語法格式:

if(關系表達式) {
  語句體1;
}else {
  語句體2;
}

    執行流程:

      •   首先判斷關系表達式看其結果是 true 還是  false; 
      •      如果是 true 就執行語句體1; 
      •     如果是 false 就執行語句體2;

      流程圖:

  

  3、判斷語句3 -- if...else if...else 語句(多分支結構)

    語法格式:

if (判斷條件1) {
  執行語句1;
} else if (判斷條件2) {
  執行語句2;
}
...
}else if (判斷條件n) {
  執行語句n;
} else {
  執行語句n+1;
}

    執行流程:

      •    首先判斷關系表達式1 看其結果是 true 還是 false;
      •       如果是 true就執行語句體1;
      •       如果是 false 就繼續判斷關系表達式2看其結果是 true 還是 false;
      •       如果是 true 就執行語句體 2;
      •       如果是 false 就繼續判斷關系表達式... 看其結果是 true 還是  false;
      •       .....
      •       如果沒有任何關系表達式為 true,就執行語句體 n+1

   流程圖: 

  

 

  4、if 語句和三元運算符的互換

    在某些簡單的應用中, 可以使用 if...else 語句和三元運算符互換使用的。這樣看起來更簡便一些。

   Demo:

 1 public static void main(String[] args) {  2   int a = 10;  3   int b = 20;  4   //定義變量,保存a和b的較大值
 5   int c;  6   if(a > b) {  7     c = a;  8   } else {  9     c = b; 10   } 11   //可以上述功能改寫為三元運算符形式
12   c = a > b ? a:b; 13 }

二、選擇語句

  1、選擇語句 -- switch

    語句格式:

switch(表達式) {
case 常量值1:
  語句體1;
  [break;]
case 常量值2:
  語句體2;
  [break;]
...
default:
  語句體n+1;
  [break;]
}

    執行流程:

      •  首先計算出表達式的值
      •     其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結 束。
      •     最后,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然后程序結束掉。

   流程圖:

  

    注意

    a、多個 case 后面的數值不可以重復,切必須是常量值

    b、switch 語句中,表達式的數據類型,可以是byte,short,int,char,enum(枚舉)(1.5之后),JDK7后可以接收字符串(String)。

    c、switch 語句格式可以很靈活:前后順序可以顛倒,而且break語句還可以省略。匹配哪一個case就從哪一個位置向下執行,直到遇到了break或者整體結束為止。

    d、default 語句可以省略,也可以寫到任意位置,不一定會寫在最后

  2、case 的穿透性

    在switch語句中,如果case的后面不寫break,將出現穿透現象,也就是不會在判斷下一個case的值,直接向后運 行,直到遇到break,或者整體switch結束。

   Demo:

 1 public static void main(String[] args) {  2   int i = 5;  3 switch (i){  4   case 0:  5     System.out.println("執行case0");  6     break;  7   case 5:  8     System.out.println("執行case5");  9   case 10: 10     System.out.println("執行case10"); 11   default: 12     System.out.println("執行default"); 13   } 14 }

     上述程序中,執行case5后,由於沒有break語句,程序會一直向后走,不會在判斷case,也不會理會break,直接 運行完整體switch。

     Tips:在使用 switch 語句時,寫上  break 語句是非常有必要的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM