我尽可能多地尝试搜索,但是当你是初学者时,它有点难。无论如何我试图学习Java并且我坚持一个问题,即“var1可能比var2或var3大但不是两者。而且我应该用布尔值来回答。
e = var1 > var2 || var1 > var3 && var1 < var2 + var3;
如果我这样做,我最终只需要做一个var2和var3的总和。我该怎么做
var1 < var2 AND var3;
答案 0 :(得分:7)
您可以使用exclusive-OR运算符:
(var1 > var2) ^ (var1 > var3)
A ^ B
true
当且仅当A
或B
(但不是两者)true
时才会{{1}}:
A B A^B --------- 0 0 0 0 1 1 1 0 1 1 1 0
答案 1 :(得分:4)
如果var1
“可以”大于var2
,并且“可以”大于var3
,而不是两者,那么答案很简单。
boolean response = !(var1>var2 && var1>var3)
boolean response = (var1<=var2 || var1<=var3)
答案 2 :(得分:1)
确定var2和var3中较大的一个是什么,检查var1是否大于那个?如果返回true,则您已经知道它比两者都大。 (e:至少这是一种方式,可能不是最好的。)
答案 3 :(得分:0)
XOR不是开箱即用的 你应该测试两种情况 if((x1&gt; x2&amp;&amp; x1&lt; xx3)||(x1&lt; x2&amp;&amp; x1&gt; x3))
答案 4 :(得分:0)
试试这个:
if (var1 > var2 ||var1 > var3 && !(var1 < (var2 + var3) )){
Assert.assertTrue(true);
}
答案 5 :(得分:0)
Yuo可以这样检查:
e = (var1 > var2 ) || (var1 > var3) && (var1 < var2) + var3;
答案 6 :(得分:0)
通常你需要考虑运算符的关联性(通常在Java中从左到右)以及运算符优先级(加法前的乘法等)
var1可以大于var2或var3但不能同时
(var1 > var2 || var1 > var3) && !(var1 > var2 && var1 > var3)
或者您可以使用其他答案中建议的独占或运算符,这些答案需要的代码最少。