Switch流程控制语句问题 运行结果及报错内容,如何解决?

问题相关代码,请勿粘贴截图

private void Switch_() {
        int score = 90;
        switch (score) {
            case score >= 85:
                System.out.println("优秀");
                break;
            case score < 85 && score >= 60:
                System.out.println("合格");
                break;
            case score < 60:
                System.out.println("不合格");
                break;
            default:
                System.out.println("不合格");
                break;
        }
    }
运行结果及报错内容
case score >= 85:
case score < 85 && score >= 60:
case score < 60:

Incompatible types. Found: 'boolean', required: 'int'

疑惑

在一年前还可以这样写。
为什么现在就会报错了呢?

这种带有比较的,用if来判断吧

switch case 只能按照是否相等匹配,你可以将代码做如下修改:

    private void Switch_() {
        int score = 90;
        if (score >= 85) {
            System.out.println("优秀");
        } else if (score >= 60) {
            System.out.println("合格");
        } else {
            System.out.println("不合格");

        }
    }

case score >= 85改成
case 85
其他同理