switch - case 條件流程控制

「if - else」條件式運算結果為「true」時會執行大括號中的程式碼,「false」則執行「else」的程式碼。如果條件式不成立時並不想作任何事,則else可以省略。 鏈狀或巢狀的「if - else」條件式運算可以處理多種情況,但是複雜的語法若沒有明確的格式化閱讀困難。
public class CH0701 {

 public static void main(String[] args) {
  
  int score = 88;  
  
  if (score >= 90) {
   
   System.out.printf("A");
   
  } else if (score >= 80 && score < 90) {
   
   System.out.printf("B");
   
  } else if (score >= 70 && score < 80) {
   
   System.out.printf("C");
   
  } else if (score >= 60 && score < 70) {
   
   System.out.printf("D");
   
  } else {
   
   System.out.printf("E");
   
  }  
  
 }

}

鏈狀效率並不好,上面的例子在最差的情況下要存取並運算7次。

switch運算函數當中置放變數或運算式,判斷後會開始與case中設定的值比對。如果相符合就執行大括號程式碼區塊,程式碼需要加「break」就離開。若沒有符合的條件,則會執行「default」後的陳述句。「default」不一定需要,如果沒有預設要處理的動作,可以省略「default」。

public class CH0702{

 public static void main(String[] args) {
  
  int score = 100;
  
  int quotient = score / 10;  
  
  switch (quotient) {
  case 10:
  
  case 9:
   System.out.printf("A");
   break;
  
  case 8:
   System.out.printf("B");
   break;
  
  case 7:
   System.out.printf("C");
   break;
  
  case 6:
   System.out.printf("D");
   break;
  
  default:
   System.out.printf("E");
  }
  
 }

}


case 10 沒有任何的陳述,也沒有使用break,所以程式繼續往下執行,直到遇到了「break」離開「switch」。當成績為 100 顯示 case 9: break之前的程式碼。如果比對條件不在6, 7, 8, 9這些數字的話,會執行 default: 後方的程式碼。


請改變 CH0702 程式中的判斷條件,改為手動輸入條件。
下一步 使用 for 迴圈

沒有留言:

張貼留言