对我的 Java 教育有一个任务:创建一个条件,如果 X 和 Z 值中只有一个小于 20,则该条件为真。如何做到这一点的方法如下:
(X < 20 && Y >= 20) || (X >= 20 && Y < 20)
或者
(a < 20) != (b < 20)
但是我有限制,应该使用不超过2个比较运算符来解决,没有* / + - 运算符,没有位运算符
对我的 Java 教育有一个任务:创建一个条件,如果 X 和 Z 值中只有一个小于 20,则该条件为真。如何做到这一点的方法如下:
(X < 20 && Y >= 20) || (X >= 20 && Y < 20)
或者
(a < 20) != (b < 20)
但是我有限制,应该使用不超过2个比较运算符来解决,没有* / + - 运算符,没有位运算符
您可以使用 XOR 运算符^
if( (x < 20) ^ (z < 20) )
通过使用条件运算符? :,您可以实现:
if(X < 20 ? Y >= 20 : Y < 20){
...
}
if(X < 20 ? Y >= 20 : Y < 20){
显然这使用了太多的比较运算符。所以,只用 2 重写它:
boolean b = Y >= 20;
if (X < 20 ? b : !b) {
return Math.max(a, b) >= 20 && Math.min(a, b) < 20;
您只需要检查其中一个值是否小于 20。这应该有效:
if( x < 20 || y < 20){
...
}