在case标签中使用布尔表达式切换语句

ano*_*der 1 java switch-statement

我正在学习java,我遇到带有表达式的switch-case语句有问题.有谁可以帮助我吗?我无法理解我犯错误的地方.

package SecondSet_StartingArray;

import java.util.Scanner;

public class Testing 
{
    public static void main(String[] args) {

    System.out.println("Enter a Number between 1 & 100");
    Scanner scan = new Scanner(System.in);
    int i = scan.nextInt();
    switch (i)
    {
        case (i>90):    System.out.println("Rating 5");break;
        case (i<=90):   System.out.println("Rating 4");break;
        case (i<=60):   System.out.println("Rating 3");break;
        case(i<=30):    System.out.println("Rating 2");break;
        case(i>29):     System.out.println("Rating 1");break;
    }
}

}
Run Code Online (Sandbox Code Playgroud)

Str*_*tly 5

你不能使用带有布尔表达式的switch-case case (i<=90).您的案例必须是要评估的常量表达式.

case 90: whatever; break;
case 120: whatever; break;
case SOME_CONSTANT: whatever; break;
Run Code Online (Sandbox Code Playgroud)

根据您的需要,您需要使用if-else-if语句.