Java中的if(布尔条件)

时间:2013-10-03 06:53:33

标签: java if-statement

这对我来说总是很困惑。有人可以解释一下吗?我的困惑是 - 布尔默认为false。因此,在下面的示例中,当状态未打开时,它是否进入if循环,即它已关闭if (condition is false) 是否进入{{1}当状态为TURNED ON时循环,换句话说if

if (condition is true)

我知道这是一个非常基本的问题,但如果你能用非常基本的语言解释答案,那就太好了。 :)随意指出我复制的帖子有一个非常好的解释(我没有找到一个我可以清楚得到它)。如果您想使帖子更通用,也可以随时更改帖子的主题。

11 个答案:

答案 0 :(得分:14)

好的,所以..

// As you already stated, you know that a boolean defaults to false.
boolean turnedOn;
if(turnedOn) // Here, you are saying "if turnedOn (is true, that's implicit)
{
//then do this
}
else // if it is NOT true (it is false)
{
//do this
}

现在更有意义了吗?

if语句将评估您在其中放入的返回布尔值的任何代码,如果评估返回true,则输入第一个块。 其他(如果值为真,它将为false,因为布尔值可以为true或false)它将进入 - 是的,你猜对了 - else {}阻止。

一个更详细的例子。

如果我被问到“你饿了吗?”,简单的回答是肯定的(真实的)。或否(假)。

boolean isHungry = true; // I am always hungry dammit.
if(isHungry) { // Yes, I am hungry.
   // Well, you should go grab a bite to eat then!
} else { // No, not really.
   // Ah, good for you. More food for me!

   // As if this would ever happen - bad example, sorry. ;)
}

答案 1 :(得分:7)

在您的示例中,IF语句将在state = true时运行,这意味着else部分将在state = false时运行。

if(turnedOn == true) is the same as if(turnedOn)

if(turnedOn == false) is the same as if(!turnedOn)

如果你有:

boolean turnedOn = false;

或者

boolean turnedOn;

然后

if(turnedOn)
{

}
else
{
    // This would run!
}

答案 2 :(得分:3)

ABoolean(带有大写'B')是一个Boolean对象,如果没有赋值,则默认为null。 boolean(带小写的'b')是一个布尔基元,如果没有赋值,则默认为false。

Boolean objectBoolean;
boolean primitiveBoolean;

System.out.println(objectBoolean); // will print 'null'
System.out.println(primitiveBoolean); // will print 'false'

Citation

所以在你的代码中,因为声明了小'b'的布尔值,它将设置为false,因此

boolean turnedOn;
    if(turnedOn) **meaning true**
    {
    //do stuff when the condition is false or true?
    }
    else
    {
    //do else of if ** itwill do this part bechae it is false
    }

if(turnon)测试一个值,如果为true,你没有为启用的值赋值,使其成为false,使得它执行else语句:)

答案 3 :(得分:1)

boolean state = "TURNED ON";

不是Java有效代码。 boolean只能接收布尔值(true或false),"TURNED ON"是String。

修改

现在你在谈论一个循环而你的代码不包含任何东西。你的var state是假的,因为布尔默认值你执行else子句。

答案 4 :(得分:1)

boolean turnedOn;
    if(turnedOn)
    {
    //do stuff when the condition is true - i.e, turnedOn is true
    }
    else
    {
    //do stuff when the condition is false - i.e, turnedOn is false
    }

答案 5 :(得分:0)

布尔值默认值仅对于类的字段为false。如果在方法中,则必须按true或false初始化变量。因此,例如在您的情况下,您将遇到编译错误。

此外,我并不是真的明白这一点,但进入if的唯一方法是将条件评估为真。

答案 6 :(得分:0)

假设state在实际代码中设置了有效的布尔值,则以下条件将成功

if(state)

当state为布尔值时为TRUE

如果条件检查表达式是否被评估为TRUE / FALSE。如果表达式是简单的true,则条件将成功。

答案 7 :(得分:0)

这就是if的行为方式。

if(turnedOn) // This turnedOn should be a boolean or you could have a condition here which would give a boolean result.
{
// It will come here if turnedOn is true (i.e) the condition in the "if" evaluates to true
}
else
{
// It will come here if turnedOn is false (i.e) the condition in the "if" evaluates to false
}

答案 8 :(得分:0)

if (turnedOn) {
    //do stuff when the condition is false or true?
}
else {
    //do else of if
}

它可以写成:

if (turnedOn == true) {
        //do stuff when the condition is false or true?
    }
else { // turnedOn == false or !turnedOn
        //do else of if
}

因此,如果您的turnedOn变量为true,则如果将被调用,如果被指定为false,则会调用 else 。如果您不明确地将它们分配给e.q.,则将布尔值隐式赋值为false。 turnedOn = true

答案 9 :(得分:0)

if块的语法如下,

if(condition){
// Executes when condition evaluates to true.
}
else{
// Executes when condition evaluates to false.
}

在您的情况下,您直接传递一个布尔值,因此不需要评估。

答案 10 :(得分:0)

假设您要检查布尔值。如果是真的,做点什么。否则,做点别的。你可以写:

composer update

而不是那样,你可以这样做:

if(condition==true){

}
else{   //else means this checks for the opposite of what you checked at if

}

反之。如果你在条件错误的情况下做某事,如果条件成立则做其他事情。然后你会写:

if(condition){  //this will check if condition is true 

}
else{ 

}

但遵循简单的道路。我们这样做:

if(condition!=true){   //if(condition=false)

}
else{

}

}

想一想。你很快就会得到它。