3

为什么我在这一行得到“多个标记”

- Syntax error on token "=", != 
 expected` error? I am coding in Eclipse.

我的代码有什么问题吗?

a_Exists, l_Exists,v_Existsall_Exits是布尔值

if(a_Exists=false && l_Exists=false && v_Exists=false)
{
    all_Exists = false;
}
4

7 回答 7

4

三件事是错误的:

  1. 您正在使用分配而不是比较,
  2. 更常见的是使用!x而不是x==falsewith booleans:
  3. if语句是不必要的 - 您可以在单个表达式中执行它。

方法如下:

all_Exists = a_Exists && l_Exists && v_Exists;
于 2013-11-11T15:40:52.183 回答
3

但是,您需要==用于比较,因为我们在这里使用布尔值,您可以逃脱

if(!a_Exists && !l_Exists && !v_Exists)
{
    all_Exists = false;
}
于 2013-11-11T15:38:47.693 回答
3

a_Exists=false赋值falsea_Exists

您可以使用==来比较或更好地使用:

if(!a_Exists && !l_Exists && !v_Exists)
于 2013-11-11T15:39:35.613 回答
3

您不是在比较值,而是在尝试分配新的 .. 它应该是这样的:

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;
}
于 2013-11-11T15:39:44.560 回答
3
if(a_Exists=false && l_Exists=false && v_Exists=false)

总是错误的,因为您正在分配falsea_Exists,并且由于受让人将获得分配的值,因此表达式将如下所示:

if(false && l_Exists=false && v_Exists=false)

由于短路评估,将无法达到接下来的两个条件。

这就是为什么强烈推荐(并且必须)这样写的原因:

if(!myBoolean)

代替:

if(myBoolean == false)

于 2013-11-11T15:39:54.130 回答
3

在 Java 和其他语言中,=表示赋值。您想进行比较,这是通过使用==(double equals) 来实现的。

于 2013-11-11T15:40:07.293 回答
1

如果你想将赋值和 if-check 结合起来,你应该用括号括起来,但这不是一个好的风格:

boolean a_Exists , l_Exists, v_Exists, all_Exists;
if((a_Exists = true) && (l_Exists = false) && (v_Exists = true)){
    all_Exists = true;
}
于 2013-11-13T06:27:10.493 回答