2015-07-29 2 views
-3

У меня есть переменная int с именем number со значением 21.Проверить целое число между двумя значениями

int number = 21; 

if (number >= 6 && number < 12) { 
    System.out.println("catch 1"); 
} 
else if (number >= 12 && number < 17) { 
    System.out.println("catch 2"); 
} 
else if (number >= 17 && number < 21) { 
    System.out.println("catch 3"); 
} 
else if (number >= 21 && number < 6) { 
    System.out.println("catch 4"); 
} 

Почему я не вижу сообщение catch 4?

ответ

4

Я очень сомневаюсь, что число будет в то же время больше 21 и меньше 6. Возможно, вы имеете в виду 26 вместо 6.

+1

Учитывая прогрессирование, ОП, вероятно, означает, 24. (12 - 6 = 6, 17 - 12 = 5, 21 - 17 = 4, x - 21 = 3 => x = 24) –

2

Поскольку значение 21 не менее 6

Так что, когда линия else if (number >= 21 && number < 6) { оценивается, программа видит:

else if (21 >= 21 && 21 < 6) { 

который становится:

else if (true && false) { 

который становится

else if (false) { 

Если вы измените эту строку, чтобы сказать else if (number >= 21 && number > 6) { тогда вы увидите catch 4

Примечание: это было бы то же самое, как говорят else if (number > 6) {

EDIT: на основе названия вашего вопроса кажется вы пытаетесь чтобы проверить, если number между 6 и 21

если number может равняться 6 или 21, которые будут выглядеть следующим образом:

else if(number <= 21 && number >= 6){ 

, если number может не равна 6 или 21, которые будут выглядеть следующим образом:

else if(number < 21 && number > 6){ 
Смежные вопросы