-4

对我的 Java 教育有一个任务:创建一个条件,如果 X 和 Z 值中只有一个小于 20,则该条件为真。如何做到这一点的方法如下:

(X < 20 && Y >= 20) || (X >= 20 && Y < 20)

或者

(a < 20) != (b < 20)

但是我有限制,应该使用不超过2个比较运算符来解决,没有* / + - 运算符,没有位运算符

4

5 回答 5

8

您可以使用 XOR 运算符^

if( (x < 20) ^ (z < 20) )
于 2018-07-04T17:13:11.317 回答
4

通过使用条件运算符? :,您可以实现:

if(X < 20 ? Y >= 20 : Y < 20){
    ...
}
于 2018-07-04T17:00:05.210 回答
2

利诺的回答

if(X < 20 ? Y >= 20 : Y < 20){

显然这使用了太多的比较运算符。所以,只用 2 重写它:

boolean b = Y >= 20;
if (X < 20 ? b : !b) {
于 2018-07-05T10:02:36.160 回答
0
 return Math.max(a, b) >= 20 && Math.min(a, b) < 20;
于 2018-07-04T17:05:30.390 回答
-3

您只需要检查其中一个值是否小于 20。这应该有效:

if( x < 20 || y < 20){ ... }

于 2018-07-04T17:09:21.267 回答