我有一个名为number
的int变量,其值为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
消息?
答案 0 :(得分:4)
我非常怀疑一个数字会同时大于21且小于6.你的意思可能是26
而不是6
。
答案 1 :(得分: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) {
编辑:根据您问题的标题,您似乎正在尝试检查number
和6
之间是否21
如果number
可以等于6
或21
,则会显示:
else if(number <= 21 && number >= 6){
如果number
不能等于6
或21
,则表示如下:
else if(number < 21 && number > 6){