嗨,你可以请清除我的疑惑,下面的程序。输出结果为2 7,但根据我的理解,它是2,6为什么go方法要多加一个额外的时间,并且计数递增为7。交付Java程序
class Handed {
int state = 0;
Handed(int s) {
state = s;
}
public static void main(String... hi) {
Handed b1 = new Handed(1);
Handed b2 = new Handed(2);
int t1 = b1.go(b1);
int t2 = b2.go(b2);
System.out.println(t1 + " " + t2);
//System.out.println(b1.go(b1) + " " + b2.go(b2));
}
int go(Handed b) {
if(this.state == 2) {
b.state = 5; go(this);
}
int t3 = ++this.state;
return t3;
}
}
谢谢,我明白了。在日食去(这)被调用后计数是6,而不检查条件,因此我有疑问。 – rama