我尽力搜索尽可能多的东西,但是当你是初学者的时候这很难。反正我试着去学习Java和IM停留在一个问题,说:“VAR1可以比VAR2和VAR3但不能两者都大。和IM应该有一个布尔值来回答。少于两个变量
e = var1 > var2 || var1 > var3 && var1 < var2 + var3;
如果我这样做,我结束了它只是在做VAR2和VAR3的总和。我该怎么样
var1 < var2 AND var3;
我尽力搜索尽可能多的东西,但是当你是初学者的时候这很难。反正我试着去学习Java和IM停留在一个问题,说:“VAR1可以比VAR2和VAR3但不能两者都大。和IM应该有一个布尔值来回答。少于两个变量
e = var1 > var2 || var1 > var3 && var1 < var2 + var3;
如果我这样做,我结束了它只是在做VAR2和VAR3的总和。我该怎么样
var1 < var2 AND var3;
可以使用exclusive-OR操作:
(var1 > var2)^(var1 > var3)
A^B
是true
当且仅当A
或B
(但不能同时)是true
:
A B A^B --------- 0 0 0 0 1 1 1 0 1 1 1 0
也被称为'!=' – Nicolas
谢谢!这工作完美。奇怪的是,我没有看到它的任何地方。 – user2599508
@ user2599508这不是最常见的操作员之一。 – Fabinout
XOR是不是出在Java中框 你应该同时测试情况 的IF((X1> X2 & & X1 < xx3)||(x1 < x2 & & X1> X3))
试试这个:
if (var1 > var2 ||var1 > var3 && !(var1 < (var2 + var3))){
Assert.assertTrue(true);
}
宥可以检查这样的:
e = (var1 > var2) || (var1 > var3) && (var1 < var2) + var3;
如果var1
“可以”比var2
更大,而且比var3
“可以”做大,但不能同时,答案是非常简单的。
boolean response = !(var1>var2 && var1>var3)
boolean response = (var1<=var2 || var1<=var3)
@afsantos感谢编辑,我不习惯SO的格式。 – Fabinout
确定var2和var3中较大的一个是什么,检查是否var1大于那个?如果这返回true,你已经知道它比两者都大。 (e:至少有一种方式,可能不是最好的。)
一般来说,您需要考虑运算符的关联性(通常从左到右在Java中)以及运算符优先级(在添加之前的乘法运算等)
VAR1可以比VAR2和VAR3但不能同时
(var1 > var2 || var1 > var3) && !(var1 > var2 && var1 > var3)
更大或者你可以使用异或运算符,在需要的最少的代码,其他的答案中的一个建议。
您需要添加一些括号。 – Kayaman
大概“不是两个”在这里并不意味着“不超过总和” – tttppp
是返回val一个'布尔'(类的实例)或'布尔'(主要数据类型)? – akf