網頁

2013年9月12日 星期四

Ch2_2 switch-case流程敘述

switch-case選擇式流程敘述屬於多種條件判斷敘述。



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;
        }
    }
}


沒有留言:

張貼留言