少于两个变量

时间:2013-07-19 12:51:00

标签: java

我尽可能多地尝试搜索,但是当你是初学者时,它有点难。无论如何我试图学习Java并且我坚持一个问题,即“var1可能比var2或var3大但不是两者。而且我应该用布尔值来回答。

e = var1 > var2 || var1 > var3 && var1 < var2 + var3;

如果我这样做,我最终只需要做一个var2和var3的总和。我该怎么做

var1 < var2 AND var3;

7 个答案:

答案 0 :(得分:7)

您可以使用exclusive-OR运算符:

(var1 > var2) ^ (var1 > var3)

A ^ B true当且仅当AB(但不是两者)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)

或者您可以使用其他答案中建议的独占或运算符,这些答案需要的代码最少。