if语句中的Java布尔
当我运行此代码时,我将值no作为输出。我不明白为什么布尔变量isNegative保持为true,而x被初始化为100。这是基于java的。谢谢你以后的帮助if语句中的Java布尔,java,if-statement,boolean,Java,If Statement,Boolean,当我运行此代码时,我将值no作为输出。我不明白为什么布尔变量isNegative保持为true,而x被初始化为100。这是基于java的。谢谢你以后的帮助 boolean isNegative = (x < 0); if (isNegative) { x = 100; if (isNegative) System.out.println("no"); else System.out.println("yes"); } else System.out.
boolean isNegative = (x < 0);
if (isNegative)
{
x = 100;
if (isNegative)
System.out.println("no");
else
System.out.println("yes");
}
else
System.out.println("maybe");
布尔值为负=(x<0);
如果(为负)
{
x=100;
如果(为负)
系统输出打印项次(“否”);
其他的
System.out.println(“是”);
}
其他的
System.out.println(“可能”);
因为您的布尔值在if语句之前初始化因为您的布尔值在if语句之前初始化因为的值为负值
永远不会更改,所以在更改x
boolean isNegative = (x < 0);
if (isNegative)
{
x = 100;
isNegative = (x < 0);
if (isNegative)
System.out.println("no");
else
System.out.println("yes");
}
else
System.out.println("maybe");
布尔值为负=(x<0);
如果(为负)
{
x=100;
isNegative=(x<0);
如果(为负)
系统输出打印项次(“否”);
其他的
System.out.println(“是”);
}
其他的
System.out.println(“可能”);
因为的值为负值
永远不会更改,所以在更改x
boolean isNegative = (x < 0);
if (isNegative)
{
x = 100;
isNegative = (x < 0);
if (isNegative)
System.out.println("no");
else
System.out.println("yes");
}
else
System.out.println("maybe");
布尔值为负=(x<0);
如果(为负)
{
x=100;
isNegative=(x<0);
如果(为负)
系统输出打印项次(“否”);
其他的
System.out.println(“是”);
}
其他的
System.out.println(“可能”);
,因为(x<0)是一个在运行时只计算一次的表达式。这个
boolean isNegative = (x < 0);
布尔值为负=(x<0);
只执行一次。在此之后,isNegative将始终为false(假设x已经为负值)。如果以后更改“x”,则需要重新计算或重新计算isNegative。因为(x<0)是在运行时仅计算一次的表达式。这个
boolean isNegative = (x < 0);
布尔值为负=(x<0);
只执行一次。在此之后,isNegative将始终为false(假设x已经为负值)。如果以后更改“x”,则需要重新评估或计算isNegative。我可能在重复其他人说过的话,但也许我可以添加一些内容。这个问题显示了对程序执行的误解,这是非常基本的 执行通过一系列语句进行。序列是由循环、方法调用等修改的,但这与这个答案并不密切相关 赋值(对变量)是一个计算值的语句,可能使用当前可用的其他值。它肯定不是一个等式的同一件事,它表明两个表达式表示同一件事 所以,在你的情况下
isNegative = (x < 0);
然后,当您想要测试x
的当前值时,请使用isNegative(x)
值得一提的是,编程意义上的“变量”概念是编程所特有的,许多著名的计算机科学家会说这是一个相当深刻的想法。我可能在重复别人说过的话,但也许我可以补充一些东西。这个问题显示了对程序执行的误解,这是非常基本的 执行通过一系列语句进行。序列是由循环、方法调用等修改的,但这与这个答案并不密切相关 赋值(对变量)是一个计算值的语句,可能使用当前可用的其他值。它肯定不是一个等式的同一件事,它表明两个表达式表示同一件事 所以,在你的情况下
isNegative = (x < 0);
然后,当您想要测试x
的当前值时,请使用isNegative(x)
值得一提的是,编程意义上的“变量”概念是编程所特有的,有许多著名的计算机科学家会说这是一个相当深刻的想法。
当我运行这段代码时,我将值no作为输出。我不明白为什么布尔变量isNegative保持为true,而x被初始化为100代码>-不,这不正确。您的代码将打印可能
。更改x
的值不会更改isNegative
@ArvindKumarAvinash不,它不会更改(假设x
最初小于0)。@KonradRudolph-OP在布尔值isNegative=(x<0)之前没有提到x
的值代码>。假设x
的默认值为0
,它将打印可能的。假设x
一开始小于0
,那么它将打印no
,这是对的。在数学上你是对的,但在Java中,=
是(重新)定义的,不相等。运行此代码时,我将值no作为输出。我不明白为什么布尔变量isNegative保持为true,而x被初始化为100代码>-不,这不正确。您的代码将打印可能
。更改x
的值不会更改isNegative
@ArvindKumarAvinash不,它不会更改(假设x
最初小于0)。@KonradRudolph-OP在布尔值isNegative=(x<0)之前没有提到x
的值代码>。假设x
的默认值为0
,它将打印可能的。假设x
最初小于0
,那么它将打印no
,这是对的。在数学上你是对的,但在Java中,=
是(重新)定义的,不相等。