You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java新手求助:如何在switch case语句中指定数值范围?

解决Java Switch Case无法指定数值范围的问题

你当前代码的核心问题是:case 0-20会被Java编译器解析为数学运算0-20=-20,因此这个case只会匹配input等于-20的情况,完全达不到你想要的范围匹配效果。

下面提供几种可行的解决方案,适配不同Java版本:

1. Java 12+ 推荐写法:Switch表达式+范围条件

从Java 12开始,switch表达式支持when关键字添加范围判断,语法简洁直观:

int input = 75; // 替换为你的输入值
String grade = switch (input) {
    case int score when score >= 0 && score <= 20 -> "F";
    case int score when score >= 21 && score <= 40 -> "D";
    case int score when score >= 41 && score <= 60 -> "C";
    case int score when score >= 61 && score <= 80 -> "B";
    case int score when score >= 81 && score <= 100 -> "A";
    default -> "Invalid grade"; // 处理超出0-100的非法输入
};
System.out.println("Your grade is " + grade);

2. Java 12以下版本:两种替代方案

方案A:整数分段映射(利用整数除法)

通过整数除法将分数映射为固定区间的整数,再用switch匹配:

int input = 85; // 替换为你的输入值
switch ((input - 1) / 20) {
    case 0: // 1-20
        System.out.println("Your grade is F");
        break;
    case 1: //21-40
        System.out.println("Your grade is D");
        break;
    case 2: //41-60
        System.out.println("Your grade is C");
        break;
    case 3: //61-80
        System.out.println("Your grade is B");
        break;
    case 4: //81-100
        System.out.println("Your grade is A");
        break;
    default:
        // 处理0或大于100的情况
        System.out.println(input == 0 ? "Your grade is F" : "Invalid grade");
}

方案B:直接使用if-else(最易理解)

如果不需要强行用switch,if-else的写法逻辑更清晰,对新手友好:

int input = 50; // 替换为你的输入值
if (input >= 0 && input <= 20) {
    System.out.println("Your grade is F");
} else if (input >= 21 && input <= 40) {
    System.out.println("Your grade is D");
} else if (input >= 41 && input <= 60) {
    System.out.println("Your grade is C");
} else if (input >= 61 && input <= 80) {
    System.out.println("Your grade is B");
} else if (input >= 81 && input <= 100) {
    System.out.println("Your grade is A");
} else {
    System.out.println("Invalid grade");
}

内容的提问来源于stack exchange,提问作者JavaNewbieeee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 00:15:37