因此,下周我将面对决赛,我经历了一些旧测试。这个引起了我的注意,因为我似乎无法理解代码。
public class Start {
boolean zustand = false;
public static void main (Strings[] args){
Start obj = new Start();
for(int i = 0; i <= 3; i++){
if(obj.getZustand() == true){
System.out.println(""+i+ " true");
}
else{
System.out.println(""+i+ " false");
}
}
}
public boolean getZustand(){
zustand = (zustand == false);
return zustand;
}
}
我以为输出是
0 true
1 true
2 true
3 true
但是我在eclipse上尝试了它们,输出是
0 true
1 false
2 true
3 false
谁能给我解释为什么他们都不都是真的?
最佳答案
每次调用zustand
函数时,都会更改getZustand
变量。
zustand = (zustand == false);
这行代码与
zustand = !zustand
相同。并注意zustand
是一个类成员字段,因此其值在函数调用中保留。