switch(expression :x){ //x必須是byte,char,short,int的資料型態 case 1: // 比對子 //符合case1的程式區塊 //break ;跳出switch-case的敘述流程 case 2: // 比對子 //符合case2的程式區塊 //break ;跳出switch-case的敘述流程 case 3: // 比對子 //符合case3的程式區塊 //break ;跳出switch-case的敘述流程 default;//皆不符合的程式區塊 //break ; } |
switch(x)中的x代表是一個運算過後的整數值(必須是byte,char,short,int),它會跟每一個case逐一比對(會轉換成int比對),當x值與case值相同時變執行相對應的程式區塊。執行完畢後若不需要再進行比對須使用break跳離switch-case流程,程式將不會在繼續執行其他的case下的程式區塊。
default代表無任何case符合switch要求的條件時所執行的程式區塊,只能有1個,也可以不撰寫。
如果沒有撰寫break得情況會是這樣
所以在撰寫上最好加上break當執行完畢時,跳離該程式敘述。
當比對條件不同卻執行相同的程式碼時,可用以下的來完成
switch(expression :x){ //x必須是byte,char,short,int的資料型態 case 1: // 比對子 case 2: // 比對子 //符合case2的程式區塊 //break ;跳出switch-case的敘述流程 case 3: // 比對子 //符合case3的程式區塊 //break ;跳出switch-case的敘述流程 default;//皆不符合的程式區塊 //break ; } |
範例程式 |
- Ch2_2_1 .java
package chapter; import java.io.*; public class Ch2_2_1 { public static void main(String[] args) throws IOException { System.out.println("請輸入分數"); BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); String s = bf.readLine(); int score = Integer.parseInt(s); switch (score / 10) { case 9: System.out.println("得A"); break; case 8: System.out.println("得B"); break; case 7: System.out.println("得C"); break; case 6: System.out.println("得D"); break; default: System.out.println("不及格"); break; } } } |
- Ch2_2_2 .java
package chapter; import java.io.*; public class Ch2_2_2 { public static void main(String[] args) throws IOException { System.out.println("請輸入分數"); BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); String s = bf.readLine(); int score = Integer.parseInt(s); switch (score / 10) { case 9: System.out.println("得A"); case 8: System.out.println("得B"); case 7: System.out.println("得C"); case 6: System.out.println("得D"); default: System.out.println("不及格"); } } } |
- Ch2_2_3 .java
package chapter; import java.io.*; public class Ch2_2_3 { public static void main(String[] args) throws IOException { System.out.println("請輸入字元"); BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); String s = bf.readLine(); char ch =s.charAt(0) ; switch (ch) { case 'A': case 'B': System.out.println("猜對了"); break; case 'c': System.out.println("差一點"); break; case 'D': System.out.println("差點對"); break; default: System.out.println("都不對"); break; } } } |
沒有留言:
張貼留言