这对我来说总是很困惑。有人可以解释一下吗?我的困惑是 - 布尔默认为false。因此,在下面的示例中,当状态未打开时,它是否进入if
循环,即它已关闭if (condition is false)
或是否进入{{1}当状态为TURNED ON时循环,换句话说if
?
if (condition is true)
我知道这是一个非常基本的问题,但如果你能用非常基本的语言解释答案,那就太好了。 :)随意指出我复制的帖子有一个非常好的解释(我没有找到一个我可以清楚得到它)。如果您想使帖子更通用,也可以随时更改帖子的主题。
答案 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'
所以在你的代码中,因为声明了小'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{
}
}
想一想。你很快就会得到它。