繁体   English   中英

为什么此 java 代码不适用于 loneTeen(99, 99)

[英]why doesn't this java code work for loneTeen(99, 99)

如果一个数字在 13..19 范围内(包括 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;
}

为什么它给出一个 true 而它应该给出 false

因为你的逻辑是错误的。 &&并不意味着 XOR (一个或另一个是真的,但不是两个)。 使用以下内容:

return (a>=13 && a <=19) ^ (b>=13 && b<=19);

Java 有一个逻辑异或运算符^

return (a>=13 && a<=19) ^ (b>=13 && b<=19);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM