1. 程式人生 > 實用技巧 >Java 基礎分支語句之程式流程控制switch-case

Java 基礎分支語句之程式流程控制switch-case

格式:

分支結構之二:switch-case
格式
switch (表示式){
    case常量:
    執行語句
    //break;可省了
    case 常量2:
    執行語句;
    //break;  可省了
    ...
    dfault:
    執行語句;

}

說明:
根據Switch表示式中的值。依次匹配各個case中的常量,一旦匹配成功,則進入case結構中,調其執行語句
當呼叫完執行語句以後,則仍往下執行其他case裡的語句,直到遇到break關鍵字或者switch - case結構末尾止結束;
break,可以使用在switch-case結構中,表示一旦執行到此關鍵字,就跳出switch-case結構
switch結構中表達式,只能是如下六種資料型別之一
byte 、short 、char 、int 、列舉型別(JDK1.5新增)、String型別(JDK7.0新增)

  

  示例

public class HelloWorld {
    public static void main(String[] args) {
        int number = 2;
        switch (number){
            case 0:
            System.out.println("zero");
            break;
            case 2:
            System.out.println("one");
            break;//執行後會打斷後續執行流程
            case 3:
            System.out.println("two");
            break;
            default:
            System.out.println("other");
        }
    }
}
測試

one

  示例2

public class HelloWorld {
    public static void main(String[] args) {
        int number = 2;
        switch (number){
            case 0:
            System.out.println("zero");
            //break;
            case 2:
            System.out.println("one");
            //break;
            case 3:
            System.out.println("two");
            //break;
            default:
            System.out.println("other");
        }
    }
}
測試
one
two
other

  綜合程式碼測試

import java.util.Scanner;
public class HelloWorld {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        int number = 2;
        switch (number) {
            case 0:
                System.out.println("zero");
                break;
            case 2:
                System.out.println("one");
                break;
            case 3:
                System.out.println("two");
                break;
            default:
                System.out.println("other");
        }

        // 獲取char 型別變數,Scanner沒有相關方法,只能獲取一個字串

        System.out.println("請輸入您的性別:");
        String gender = scan.next();
        char genderChar = gender.charAt(0);//轉換成char型別的操作;獲取索引為0 為真上的字元
        System.out.println(genderChar);


        System.out.println("請輸入字元:");
        String Char = scan.next();
        //char cha = Char.charAt(0);
        switch (Char) {
            case "a":
                System.out.println("A");
                break;
            case "b":
                System.out.println("B");
                break;
            case "c":
                System.out.println("C");
                break;
            case "d":
                System.out.println("D");
                break;
            case "e":
                System.out.println("E");
                break;
            default:
                System.out.println("other");
        }
        System.out.println("請輸入成績:");
        int score = scan.nextInt();
        switch (score/10) {//對10 取模
            case 0:
                //System.out.println("不及格:");
                //break;
            case 2:
                //System.out.println("不及格");
                //break;
            case 3:
                //System.out.println("不及格");
                //break;
            case 4:
                //System.out.println("不及格");
                //break;
            case 5:
                System.out.println("不及格");
                break;
            case 6:
                //System.out.println("及格");
                //break;
            case 7:
                //System.out.println("及格");
                //break;
            case 8:
                //System.out.println("及格");
                //break;
            case 9:
                //System.out.println("及格");
                //break;
            case 10:
                System.out.println("及格");
                break;
            default:
                System.out.println("輸入的不正確");
        }
        System.out.println("請輸入你家狗狗年齡:");
        int dogage = scan.nextInt();
        if (dogage < 0) {
            System.out.println("狗狗未出生");
        } else if (dogage <= 2) {
            System.out.println(dogage * 10.2);
        } else {
            System.out.println((dogage-2)*5+2*10.2);
        }
        System.out.println("請輸入月份");
        int month = scan.nextInt();
        System.out.println("請輸入幾號:");
        int day = scan.nextInt();
        int sumdays = 0;
        switch (month){
            case 12:
                sumdays += 30;
            case 11:
                sumdays += 31;
            case 10:
                sumdays += 30;
            case 9:
                sumdays += 31;
            case 8:
                sumdays += 31;
            case 7:
                sumdays += 30;
            case 6:
                sumdays += 31;
            case 5:
                sumdays += 30;
            case 4:
                sumdays += 31;
            case 3:
                sumdays += 28;
            case 2:
                sumdays += 31;
            case 1:
                sumdays += day;
            default:
                System.out.println("是今年第"+sumdays+"天");


        }
    }
}

測試
one
請輸入您的性別:
n
n
請輸入字元:
a
A
請輸入成績:
60
及格
請輸入你家狗狗年齡:
8
50.4
請輸入月份
9
請輸入幾號:
17
是今年第260天