下面是我要问的代码:
int price = 0;
boolean isFree = (price == 0);
if (isFree) {
price = 10;
if (isFree)
System.out.println("one");
else
System.out.println("two");
}
所以我只想知道为什么 isFree
当价格变量变为10时,变量保持为真。换句话说,为什么price变量会切换到10而不影响布尔表达式?
4条答案
按热度按时间3phpmpom1#
它保持不变,因为在第一次比较布尔变量之后,不会再次检查它。如果你有另一个
检查后,重新分配价格为10,那么它将是假的。
voase2hg2#
初始化后
boolean isFree = (price == 0);
,的isFree
变量被确定为true
.即使
price
已更改,除非您显式更改它(如调用boolean isFree = (price == 0);
再次)。tez616oj3#
通过使用两个isfree语句,您基本上取消了条件,从而使其为真(静态),而不是检查动态的新条件。
r7xajy2e4#
因为在定义isfree变量时,它的值设置了一次。如果希望isfree变量有另一个值,则需要设置它。
您可以将isfree的定义更改为方法:
那么,任何时候你想知道价格是否免费,你可以打电话给
isFree
方法: