1. 程式人生 > >Java switch-case 語句的優點和幾點注意事項

Java switch-case 語句的優點和幾點注意事項

java語言的三種基本結構——順序、選擇、迴圈。

switch-case是選擇結構的重要實現方式。因為雖然實際上switch-case的功能完全可以用if-else代替,但有時用switch-case確實是一種更優雅的實現方式。

比如由一個變數判斷星期幾,考慮以下程式碼:

使用if-else的效果:

[java] view plain copy print?
  1. if(day ==1){  
  2.     System.out.println("星期一");  
  3. }elseif(day ==2){  
  4.     System.out.println("星期二");  
  5. }elseif(day ==3){  
  6.     System.out.println("星期三");  
  7. }elseif(day ==4){  
  8.     System.out.println("星期四");  
  9. }elseif(day ==5){  
  10.     System.out.println("星期五");  
  11. }elseif(day ==6){  
  12.     System.out.println("星期六");  
  13. }elseif(day ==7){  
  14.     System.out.println("星期日");  
  15. }else{}   

使用switch-case會顯得優雅的多:

[java] view plain copy print
?
  1. switch(day){  
  2.     case1:System.out.println("星期一");break;  
  3.     case2:System.out.println("星期二");break;  
  4.     case3:System.out.println("星期三");break;  
  5.     case4:System.out.println("星期四");break;  
  6.     case5:System.out.println("星期五");break;  
  7.     case6:System.out.println("星期六");break;  
  8.     case7:System.out.println(
    "星期日");break;  
  9.     default:  
  10. }  
 

尤其是遇到類似這樣的情況,更顯其優雅——可讀性強、易於維護:

[java] view plain copy print?
  1. switch(day){  
  2.     case1:  
  3.     case2:  
  4.     case3:  
  5.     case4:  
  6.     case5:System.out.println("工作日");break;  
  7.     case6:  
  8.     case7:System.out.println("雙休日");break;  
  9.     default:  
  10. }  

要注意的一些情況:

1.  switch的break語句是可選的,有時我們會利用這種特性(如上面的程式碼),但是一般情況下break是不能少的。否則可能會出現意料之外的錯誤。——沒有break,程式會繼續執行後面的程式碼。

2.  default語句也是可選的。相當於對應if-else語句最後的else。

3.  java語言用於匹配的選擇因子必須是整形或字元型常量。這很重要。

4.  switch語句的比較是從上往下,所以把匹配概率大的選擇因子放在前面可以提高效率。

5.  選擇因子具有唯一性,即不能有2個相同的因子存在。