我写了一行来增加总值
int totalValue = value1 + value2 + value3;
现在我想使用if语句来编写if (totalValue = 200);
,但是它给出了一个错误说"无法从int转换为布尔类型"。
我应该怎么做因为我希望使用else if();
System.out.println();
答案 0 :(得分:8)
if (totalValue == 200)
=
用于分配值,==
用于比较值。
答案 1 :(得分:1)
Java中的=
运算符只进行赋值;您想将totalValue与200进行比较,因此您应该使用==
比较运算符。
if(totalValue = 200){
...
}
请注意,在if
语句后不应该有分号,因为Java基本上会忽略if
。
答案 2 :(得分:1)
=符号是赋值运算符。
执行if(totalValue = 200)
实际上会为totalValue分配200。
您需要的是==运算符
if(totalValue == 200)
{
System.out.println("200");
}
else if (totalValue == 100)
{
System.out.println("100");
} //...
将行终止符放在if的末尾(totalValue == 200); 将终止条件陈述。这意味着它下面的语句不仅会在条件计算结果为true时执行。
另外,我发现总是将{}放在if()之后,即使只有一个语句来防止作用域出现问题也是一种好习惯。这是一个显示如何发生(并阻止)https://stackoverflow.com/questions/21999473/apples-goto-fail-security-bug
的链接答案 3 :(得分:0)
如果你写if(totalValue = 19),它将评估你是否可以成功地将19分配给totalValue。
成功与否,在Java中是一个布尔值,所以它期望评估一个布尔值。 表达式:
if((totalValue = 19) == True){ ... }
在这种情况下,是正确的但也是无用的,因为它几乎可以肯定地成功分配值
如果您只想检查值,则必须使用==
答案 4 :(得分:0)
是的,但平等为==
,作业为=
。另外,请勿以分号结束if
语句,也不要终止if
的正文。
// if (totalValue = 200);
if (totalValue == 200) {
// Do stuff for when the value is 200
} else {
// Do stuff when the value is not 200
}
答案 5 :(得分:0)
与其他人说的一样,Java中的'='运算符用于赋值。但是(可能有点偏离主题),赋值本身会计算为赋值,可以在布尔表达式中重用。
这可以像在这个循环中一样使用,其中readLine的结果被存储并在单个表达式中与null进行比较:
int value;
while ((value = reader.read()) != -1) {
doSomething(value);
}