2014-11-20 87 views
-3

我需要检查用户输入的int是否为特定值,但是我得到||对于int类型未定义的错误。检查int值是否等于几个值中的一个

问题:如何解决这个if语句来检查int是否等于几个数之一?

if (birthYear = 1936 || birthYear == 1948 || birthYear == 1960 || birthYear == 1972 || birthYear == 1984 || birthYear == 1996 || birthYear == 2008) 

    { 
     return "Rat"; 
    } 
+0

如果表现不是一个大问题,你也可以考虑在'Set '看'birthYear'。就像'if(ratYears.contains(birthYear))',其中'birthYear = new HashSet (Arrays.asList(1936,1948,1960,...)''。 – yshavit 2014-11-20 23:48:57

回答

4
if (birthYear == 1936 || birthYear == 1948 || birthYear == 1960 || birthYear == 1972 || birthYear == 1984 || birthYear == 1996 || birthYear == 2008) 

    { 
     return "Rat"; 
    } 

您使用的=,而不是在第一次检查== ...

1

=是赋值运算符,不能用于检查两个整数平等。这就是为什么你收到你的错误。

if (birthYear = 1936 || birthYear == 1948 || birthYear == 1960 || birthYear == 1972 || birthYear ==  1984 || birthYear == 1996 || birthYear == 2008) 

{ 
    return "Rat"; 
} 

首先等于缺少==。你有=

3

birthYear = 1936是你的问题。

的逻辑OR(||)操作者只能在boolean类型和表达birthYear = 1936int类型。将赋值运算符更改为相等运算符(===)。

相关问题