Java範例之實現淡旺季飛機票打折

2020-07-16 10:05:20
某航空公司為吸引更多的顧客推出了優惠活動。原來的飛機票價為 3000 元,活動時,4~11 月旺季,頭等艙 9 折,經濟艙 8 折;1~3 月、12 月淡季,頭等艙 5 折,經濟艙 4 折,求機票的價格。

使用if-else語句實現淡旺季飛機票打折

下面使用 Java 的巢狀 if 語句根據淡旺季飛機票打折求出飛機票的價格,編寫 Java 程式實現程式碼如下:
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入出行的月份:");
        int month = sc.nextInt();
        System.out.println("選擇頭等艙還是經濟艙?數位1為頭等艙,數位2為經濟艙");
        int kind = sc.nextInt();
        double result = 60000; // 原始價格
        // 旺季的票價計算
        if (month <= 11 && month >= 4) {
            if (kind == 1) { // 旺季頭等艙
                result = result * 0.9;
            } else if (kind == 2) { // 旺季經濟艙
                result = result * 0.8;
            } else {
                System.out.println("選擇種類有誤,請重新輸入!");
            }
        }
        // 淡季的票價計算
        else if ((month >= 1 && month <= 3) || month == 12) {
            if (kind == 1) { // 淡季頭等艙
                result = result * 0.5;
            } else if (kind == 2) { // 淡季經濟艙
                result = result * 0.4;
            } else {
                System.out.println("選擇種類有誤,請重新輸入!");
            }
        } else {
            System.out.println("日期選擇有誤,請重新輸入!");
        }
        System.out.println("您選擇的機票價格為:" + result);
    }
}
上面程式碼將使用者輸入的月份儲存到 month 變數,將機票種類儲存到 kind 變數。接下來判斷變數 month 和 kind 的範圍。如果變數 month 在 4~11,kind 為 1 則執行 result=result*0.9,為 2 則執行 result=result*0.8;變數 month 在 1~3、12,kind 為 1 則執行 result=result*0.5,為 2 則執行 result=result*0.4。當使用者輸入有誤時,根據錯誤情況給予不同的提示。

旺季經濟艙出行的輸出結果如下所示:
請輸入出行的月份:
6
選擇頭等艙還是經濟艙?數位1為頭等艙,數位2為經濟艙
2
您選擇的機票價格為:48000.0
淡季頭等艙的輸出結果如下所示:
請輸入出行的月份:
2
選擇頭等艙還是經濟艙?數位1為頭等艙,數位2為經濟艙
1
您選擇的機票價格為:30000.0

使用switch語句實現淡旺季飛機票打折

上面是用巢狀 if 實現的淡旺季飛機票打折,下面我們用 switch 實現,程式碼如下所示:
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("請輸入出行的月份:");
    int month = sc.nextInt();
    System.out.println("選擇頭等艙還是經濟艙?數位1為頭等艙,數位2為經濟艙");
    int kind = sc.nextInt();
    double result = 60000; // 原始價格
    switch (month) {
    // 旺季的票價計算
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
        switch (kind) {
        case 1: // 旺季頭等艙
            result = result * 0.9;
            break;
        case 2:
            result = result * 0.8;
            break;
        default:
            System.out.println("選擇種類有誤,請重新輸入!");
            break;
        }
        break;
    case 1:
    case 2:
    case 3:
    case 12:
        switch (kind) {
        case 1: // 旺季頭等艙
            result = result * 0.5;
            break;
        case 2:
            result = result * 0.4;
            break;
        default:
            System.out.println("選擇種類有誤,請重新輸入!");
            break;
        }
        break;
    default:
        System.out.println("日期選擇有誤,請重新輸入!");
        break;
    }
    System.out.println("您選擇的機票價格為:" + result);
}
執行結果如下所示:

請輸入出行的月份:
6
選擇頭等艙還是經濟艙?數位1為頭等艙,數位2為經濟艙
2
您選擇的機票價格為:48000.0

淡季頭等艙的輸出結果如下所示:

請輸入出行的月份:
2
選擇頭等艙還是經濟艙?數位1為頭等艙,數位2為經濟艙
1
您選擇的機票價格為:30000.0