Вам нужно написать свое if
утверждение следующим образом:
if (someInt==1 || someInt==2 || someInt==4 || someInt==4)
. Или вы можете использовать switch
выражение
switch (someInt)
{
case 1:
case 2:
case 4:
case 5:
// do something
break;
}
.довольно интересно.Вы писали:
if(someInt == (1||2||4||5))
Полагаю, в вашей голове вы читаете это как , если someInt равен 1 или 2 или 4 или 5 .И если бы компьютеры вели себя как люди, это бы сработало.Но мы все знаем, что компьютеры не ведут себя так!
Оператор равенства ==
, бинарный оператор, возвращает true
, когда два его операнда равны.То есть, в вашей версии, если она скомпилирована, вам нужно, чтобы someInt
был равен (1||2||4||5)
.И для того, чтобы это даже имело смысл, нам нужно (1||2||4||5)
, чтобы вычислить одно значение, вместо того, чтобы выдавать ошибку компиляции.И, если он действительно оценивается как одно значение, то он не может иметь значение, которое вы хотите.Потому что вы хотите, чтобы тест возвращал значение true, когда someInt
равно одному из четырех возможных значений.
Суть в том, что ==
проверяет точное равенство между точно двумя значениями.