Java學習之分支結構---判斷語句:if語句和switch語句

忘塵天外天發表於2017-07-14

一個if語句包含一個布林表示式和一條或多條語句,if 語句的用語法如下:if 語句

if(布林表示式) { //如果布林表示式為true將執行的語句 },如果布林表示式的值為 true,則執行 if 語句中的程式碼塊,否則執行 if 語句塊後面的程式碼。

if...else語句

if 語句後面可以跟 else 語句,當 if 語句的布林表示式值為 false 時,else 語句塊會被執行。if…else 的用法如下:

if(布林表示式){ //如果布林表示式的值為true }else{ //如果布林表示式的值為false }

if...else if...else 語句

if 語句後面可以跟 elseif…else 語句,這種語句可以檢測到多種可能的情況。

使用 if,else if,else 語句的時候,需要注意下面幾點:

  • if 語句至多有 1 個 else 語句,else 語句在所有的 elseif 語句之後。
  • if 語句可以有若干個 elseif 語句,它們必須在 else 語句之前。
  • 一旦其中一個 else if 語句檢測為 true,其他的 else if 以及 else 語句都將跳過執行。

巢狀的 if…else 語句

使用巢狀的 if…else 語句是合法的。也就是說你可以在另一個 if 或者 elseif 語句中使用 if 或者 elseif 語句。

巢狀的 if…else 語法格式如下:

if(布林表示式 1){ ////如果布林表示式 1的值為true執行程式碼 if(布林表示式 2){ ////如果布林表示式 2的值為true執行程式碼 } }
 

switch 語句

switch 語句判斷一個變數與一系列值中某個值是否相等,每個值稱為一個分支。

switch 語法格式如下:

switch(expression){
case value : //語句 break; //可選
case value : //語句 break; //可選 //你可以有任意數量的case語句
default : //可選 //語句 }

switch 語句有如下規則:

  • switch 語句中的變數型別可以是: byte、short、int 或者 char。從 Java SE 7 開始,switch 支援字串型別了,同時 case 標籤必須為字串常量或字面量。

  • switch 語句可以擁有多個 case 語句。每個 case 後面跟一個要比較的值和冒號。

  • case 語句中的值的資料型別必須與變數的資料型別相同,而且只能是常量或者字面常量。

  • 當變數的值與 case 語句的值相等時,那麼 case 語句之後的語句開始執行,直到 break 語句出現才會跳出 switch 語句。

  • 當遇到 break 語句時,switch 語句終止。程式跳轉到 switch 語句後面的語句執行。case 語句不必須要包含 break 語句。如果沒有 break 語句出現,程式會繼續執行下一條 case 語句,直到出現 break 語句。

  • switch 語句可以包含一個 default 分支,該分支必須是 switch 語句的最後一個分支。default 在沒有 case 語句的值和變數值相等的時候執行。default 分支不需要 break 語句。

SWITCH 語句和 IF語句區別:

       if和switch都是條件判斷語句,我們可以從效率上來講~ 舉一個很簡單的例子: if(A>B) {A=B;} else {B=A; } 如果將這個例子放在switch 語句中,也並不是不能實現,但是實現起來可能會比較麻煩一些,因為在switch語句中 case中要求的是常量,一般是不能進行邏輯判斷的, 所以這也是if語句優於switch語句的地方! 但是如果您判斷的都是幾個常量的資料,我建議您最好採用switch語句,如下: switch(A) { case:xxxx ///程式程式碼 break; case:xxxxxx ///程式程式碼 break;  } http://www.csdnit.com/ 這樣的語句,雖然if語句也是能實現的,但是效能就比switch差的有點遠了
       switch使用查詢表的方式決定了case的條件必須是一個個常量。而if-else則可以靈活的多。

相關文章