首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 巢狀三元運算子實作成績等級判斷

     編輯:Java 相關知識

需求

輸入分數 N:

  • ≥ 90 → 'A'
  • 60-89 → 'B'
  • < 60 → 'C'

巢狀三元運算子寫法

import javax.swing.JOptionPane;

public class GradeClassifier {
    public static void main(String[] args) {
        String input = JOptionPane.showInputDialog("請輸入分數 (0-100):");
        if (input == null) return; // 使用者按取消

        try {
            int score = Integer.parseInt(input.trim());
            if (score < 0 || score > 100) {
                JOptionPane.showMessageDialog(null, "分數超出範圍");
                return;
            }
            String grade = (score >= 90) ? "A" : (score >= 60) ? "B" : "C";
            System.out.println("等級:" + grade);
            JOptionPane.showMessageDialog(null, "成績等級:" + grade);
        } catch (NumberFormatException e) {
            JOptionPane.showMessageDialog(null, "請輸入有效整數");
        }
    }
}

三元運算子結構解析

condition1 ? value1 : (condition2 ? value2 : value3)

  • 右結合性:a ? b : c ? d : e 等同 a ? b : (c ? d : e)。
  • 型別推論:所有分支型別需相容(此處皆為 String)。
  • 副作用:僅計算被選中的分支,短路特性。

替代寫法比較

Switch 表達式範例 (Java 14+)

String grade = switch (score / 10) {
    case 10, 9 -> "A";
    case 8, 7, 6 -> "B";
    default -> "C";
};

教學重點

  1. 三元運算子適合「單一回傳值」的簡單條件。
  2. 超過兩層巢狀建議改用 if-else 或 switch 提升可讀性。
  3. 輸入驗證(非數字、超出範圍)不可省略。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
寫法優點缺點
巢狀三元單行、表達式、無副作用層級深時難讀
if-else if清晰、易除錯、可加日誌佔行數多
Switch (Java 12+)表達式、型別安全需較新 Java 版本
查表法 (Map/陣列)O(1)、資料驅動、易擴充區間型條件需額外邏輯