ababawaibi 2024-04-17 00:21 采纳率: 0%
浏览 5

java switch case->后跟三目操作符无法运行

img


如图,显示语句错误,需要:,等等一系列报错,但是编写代码的时候也没有标红

  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-17 00:21
    关注

    引自免费微信小程序:皆我百晓生

    根据您提供的信息,您的Java代码在尝试使用switch语句时遇到了一些语法错误。以下是针对这些错误的修复建议。

    首先,让我们看下price方法中的switch语句,它包含了一些不正确的语法。Java 14及更高版本支持多值case,但在这个例子中,语法格式有误。多值case应该写成 case value1, value2, value3: 而不是 case value1, value2, value3 ->。同时,三目运算符(即条件运算符)也应用得不正确。下面是修改后的代码:

    public static int price(int aRed, int aBlue) {
        int ans = switch (aRed) {
            case 0, 1, 2, 3 -> aBlue == 0 ? 0 : 5;
            case 4 -> 200;
            case 5 -> aBlue == 0 ? 200 : 3000;
            case 6 -> aBlue == 0 ? 5000000 : 10000000;
            default -> throw new IllegalStateException("Unexpected value: " + aRed);
        };
        return ans;
    }
    

    注意这里的更改:

    1. case 0, 1, 2, 3 -> 更改为 case 0, 1, 2, 3:
    2. 删除了多余的分号(;),因为switch语句的每个case块都应以冒号(:)结束。
    3. 对于case 5case 6,将三目运算符的格式调整为标准形式,即 (condition) ? true-expression : false-expression

    这应该解决编译错误并使代码正常工作。确保您的Java环境支持多值case,否则您可能需要将多值case拆分为多个单个case

    如果您仍然遇到问题,请检查整个项目是否存在其他语法错误,或者提供更多信息以便进一步分析。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月17日