为什么我在这一行得到“多个标记”
- Syntax error on token "=", !=
expected` error? I am coding in Eclipse.
我的代码有什么问题吗?
a_Exists
, l_Exists
,v_Exists
和all_Exits
是布尔值
if(a_Exists=false && l_Exists=false && v_Exists=false)
{
all_Exists = false;
}
为什么我在这一行得到“多个标记”
- Syntax error on token "=", !=
expected` error? I am coding in Eclipse.
我的代码有什么问题吗?
a_Exists
, l_Exists
,v_Exists
和all_Exits
是布尔值
if(a_Exists=false && l_Exists=false && v_Exists=false)
{
all_Exists = false;
}
三件事是错误的:
!x
而不是x==false
with boolean
s:if
语句是不必要的 - 您可以在单个表达式中执行它。方法如下:
all_Exists = a_Exists && l_Exists && v_Exists;
但是,您需要==
用于比较,因为我们在这里使用布尔值,您可以逃脱
if(!a_Exists && !l_Exists && !v_Exists)
{
all_Exists = false;
}
a_Exists=false
赋值false
给a_Exists
。
您可以使用==
来比较或更好地使用:
if(!a_Exists && !l_Exists && !v_Exists)
您不是在比较值,而是在尝试分配新的 .. 它应该是这样的:
if(a_Exists == false && l_Exists == false && v_Exists == false)
{
all_Exists = false;
}
单=
分配
双==
比较
你也可以使用not运算符!
而不是与 false 进行比较,如下所示:
if(!a_Exists && !l_Exists && !v_Exists)
{
all_Exists = false;
}
if(a_Exists=false && l_Exists=false && v_Exists=false)
这总是错误的,因为您正在分配false
给a_Exists
,并且由于受让人将获得分配的值,因此表达式将如下所示:
if(false && l_Exists=false && v_Exists=false)
由于短路评估,将无法达到接下来的两个条件。
这就是为什么强烈推荐(并且必须)这样写的原因:
if(!myBoolean)
代替:
if(myBoolean == false)
在 Java 和其他语言中,=
表示赋值。您想进行比较,这是通过使用==
(double equals) 来实现的。
如果你想将赋值和 if-check 结合起来,你应该用括号括起来,但这不是一个好的风格:
boolean a_Exists , l_Exists, v_Exists, all_Exists;
if((a_Exists = true) && (l_Exists = false) && (v_Exists = true)){
all_Exists = true;
}