在交换机中使用关系运算符

dab*_*abe 5 java relational operators switch-statement

有没有办法在switch语句中使用关系运算符(<,<=,>,> =)?

int score = 95;

switch(score)  {
   case (score >= 90):
      // do stuff
}
Run Code Online (Sandbox Code Playgroud)

上面的例子(显然)不起作用

Ani*_*rni 11

你不能.
jls-14.11

The type of the Expression must be char, byte, short, int, Character, Byte, Short, Integer, String, or an enum type (§8.9), or a compile-time error occurs.  
Run Code Online (Sandbox Code Playgroud)

关系运算符(<,<=,>,> =)导致boolean并且不允许.

必须满足以下所有条件,否则会发生编译时错误:

  • 与switch语句关联的每个case常量表达式必须可分配(第5.2节)到switch表达式的类型.

  • 与switch语句关联的两个case常量表达式中没有两个可能具有相同的值.

  • 没有开关标签为空.

  • 最多一个默认标签可以与同一个switch语句相关联.