如何比较java中case语句中的值范围?

时间:2015-01-22 16:33:51

标签: java

i小于5时,我想使用相同的case语句。但它不起作用。给我一个incompatible types: boolean cannot be converted to int

的错误
class temp{
  public static void main(String args[]){
    int i=1;
    switch(i){
       case i < 5 :
       System.out.println("Works");
    }
  }
}

请帮我解决这个问题。

4 个答案:

答案 0 :(得分:1)

您无法为case使用布尔值。声明i < 5会返回TrueFalse。您应该使用if代替。

class temp{
  public static void main(String args){
    int i=1;
    if (i < 5)
       System.out.println("Works");
  }
}

答案 1 :(得分:1)

case i < 5  It produce boolean result. which is not compatible with integer

如果您想比较多个条件,请使用switch case。

switch(i){

  case 1 :
  case 2 :
  case 3 :
  case 4 : System.out.println("Works");
  break;

}

在您的代码中,您只处理一个条件,因此请使用if条件而不是switch

public static void main(String args){
    int i=1;

    if(i < 5)
    System.out.println("Works");

  }

答案 2 :(得分:0)

您不能在case中使用条件语句,它们只能有常量

你可以这样写

case 5:

case 6:
特别是

,因此case <5根据语法

是不可接受的

答案 3 :(得分:0)

您想要的不是switch-case块,它用作特定值的查找表。你想要一个if-then-else块:

if(i<5)
{
  \\do stuff
}
else if(\* Some other condition *\)
{
 \\ do other stuff
}
else
{
 \\ default case
}