我们会说一个号码是"青少年"如果它在13..19范围内。给定2个int值,如果一个或另一个是青少年,则返回true,但不是两者都返回。
loneTeen(13, 99) → true
loneTeen(21, 19) → true
loneTeen(13, 13) → false
public boolean loneTeen(int a, int b) {
if((a>=13 && a<=19)&&(b>=13 && b<=19))
return false;
else
return true;
}
为什么它应该给出一个真假,而它应该给出错误的
答案 0 :(得分:5)
因为你的逻辑错了。 &&
并不代表XOR(一个或另一个是真的,但不是两个)。使用以下内容:
return (a>=13 && a <=19) ^ (b>=13 && b<=19);
答案 1 :(得分:0)
Java有一个逻辑XOR 运算符^
return (a>=13 && a<=19) ^ (b>=13 && b<=19);