【发布时间】:2014-05-15 03:35:00
【问题描述】:
我正在做这个在线练习,一个问题是:
如果一个数字在 13..19 范围内,我们会说它是“青少年” 包括的。给定 2 个 int 值,如果其中一个是,则返回 true 青少年,但不是两者兼而有之
因此,如果传入我的方法的 int 值之一在 13 和 19 的范围内,我应该返回 true,但如果两者都在范围内,则返回 false;这是我写的代码:
public boolean loneTeen(int a, int b) {
if ( a >= 13 && a <= 19 || b >= 13 && b <= 19 )
return true;
else
return false;
}
基本上,如果整数 a 介于 13 和 19 之间,或者整数 b 介于 13 和 19 之间,我返回 true,否则返回 false。当我测试它时,它可以工作,除非我为整数 a 和 b 传入 13 和 13,我得到的是真而不是假。我的问题是我查看了条件“OR(||)”运算符,它说:
- 如果第一个操作数确定条件的整体值,则不计算第二个操作数。
所以当我像上面的代码一样使用“或”运算符时,这是否意味着如果 a 在范围内返回 true,或者如果 b 在范围内返回 true,但如果两者都在范围内返回 false?和使用有什么区别
-
if ( a >= 13 && a <= 19 || b >= 13 && b <= 19 )和 -
if ( a >= 13 && a <= 19 && b >= 13 && b <= 19 )如果传入的两个值都在范围内,为什么不返回 false?
【问题讨论】:
-
|| 是一件坏事当第一个为真时,运算符不会评估这两个条件:当第一个为真时,您需要检查两个条件,因为在这种情况下,您必须确保第二个为假。
标签: java