我正在学习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;
}
}
}
答案 0 :(得分:5)
您不能将switch-case与case (i<=90)
这样的布尔表达式一起使用。您的案例必须是要评估的常量表达式。
case 90: whatever; break;
case 120: whatever; break;
case SOME_CONSTANT: whatever; break;
根据您的需要,您需要使用if-else-if语句。
答案 1 :(得分:2)
您想要实现的是if-else-statement
。当您尝试评估常量值时,会使用Switch-Statements
。
答案 2 :(得分:1)
正如您可以阅读Java语言规范here:
以下所有内容必须为true,否则会发生编译时错误:
在您的代码中,第一点不满意。您可能希望在此处使用if-else-if
语句而不是switch
来执行i
中存储的值的正确检查。