我有以下两个课程:
public class Echo {
int ilosc = 0;
void witaj() {
System.out.println("sieeeemasz... ");
}
}
和
public class EchoTester {
public static void main(String[] args) {
Echo e1 = new Echo();
Echo e2 = new Echo();
int x = 0;
while (x < 4) {
e1.witaj();
e1.ilosc = e1.ilosc + 1;
if (x == 3) {
e2.ilosc = e2.ilosc + 1;
}
if (x > 0) {
e2.ilosc = e2.ilosc + e1.ilosc;
}
x = x + 1;
}
System.out.println(e2.ilosc);
}
}
控制台打印对此练习有效的结果:
sieeeemasz...
sieeeemasz...
sieeeemasz...
sieeeemasz...
10
我的问题是最后一行 - 为什么10?如果有人能告诉我它是如何工作的?
答案 0 :(得分:1)
答案 1 :(得分:0)
我建议您使用调试器逐步检查程序。就个人而言,我已经将你的代码抛入BlueJ,设置一个断点并获得所有信息,为什么会这样。
完全发生了什么:
e1.ilosc
在第8行中设置为1(0 + 1)e1.ilosc
再次增加1 e1.ilosc
添加到e2.ilosc
(2 + 0),将e2.ilosc
设置为2。e1.ilosc
增加1,使其为3。e1.ilosc
添加到e2.ilosc
(3 + 2)。 e2.ilosc
现在是5。e1.ilosc
增加到4,x增加到3,第10行触发时,e2.ilosc
增加1,使其为6。e1.ilosc
(4)添加到e2.ilosc
(6)。 4 + 6 = 10所以e2.ilosc
现在是10。x增加到4,循环停止执行,程序打印10。