为什么我在这一行得到“多个标记”
- 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==falsewith booleans: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;
}