关于Java中多个布尔值的问题

时间:2013-11-11 15:38:06

标签: java

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

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

我的代码有什么问题吗?

a_Existsl_Existsv_Existsall_Exits是布尔值

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

7 个答案:

答案 0 :(得分:4)

有三件事是错的:

  1. 您正在使用作业而不是比较,
  2. 使用!x代替x==falseboolean s更常见:
  3. if语句是不必要的 - 您可以在一个表达式中完成。
  4. 以下是:

    all_Exists = a_Exists && l_Exists && v_Exists;
    

答案 1 :(得分:3)

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

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

答案 2 :(得分:3)

a_Exists=falsefalse值分配给a_Exists

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

if(!a_Exists && !l_Exists && !v_Exists)

答案 3 :(得分:3)

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

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

=分配
==比较

你也可以使用 not -operator !而不是与false比较,如下所示:

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

答案 4 :(得分:3)

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

总是为false,因为您要将false分配给a_Exists,并且由于受让人将获得指定的值,因此表达式将如下:

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

由于Short-circuit evaluation,将无法达到接下来的两个条件。

这就是为什么强烈建议(并且必须)写下来的原因:

if(!myBoolean)

而不是:

if(myBoolean == false)

答案 5 :(得分:3)

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

答案 6 :(得分: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;
}