java为什么打印此结果
我有两门课:java为什么打印此结果,java,Java,我有两门课: public class Echo { int ilosc = 0; void witaj() { System.out.println("sieeeemasz... "); } } 及 我的问题是关于最后一行-为什么是10?如果有人能告诉我它是如何工作的?我建议您使用调试器一步一步地检查程序。就我个人而言,我已经把你的代码扔进了BlueJ,设置了一个断点,并且获得了所有的信息,为什么会这样 下面是发生的全部情况: e1。第8行中的ilos
public class Echo {
int ilosc = 0;
void witaj() {
System.out.println("sieeeemasz... ");
}
}
及
我的问题是关于最后一行-为什么是10?如果有人能告诉我它是如何工作的?我建议您使用调试器一步一步地检查程序。就我个人而言,我已经把你的代码扔进了BlueJ,设置了一个断点,并且获得了所有的信息,为什么会这样 下面是发生的全部情况:
e1。第8行中的ilosc
设置为1(0+1)e1.ilosc
再次增加1e1.ilosc
添加到e2.ilosc
(2+0),将e2.ilosc
设置为2e1。ilosc
增加1,使其成为3e1.ilosc
添加到e2.ilosc
(3+2)<代码>e2。ilosc现在是5e1.ilosc
增加到4,x增加到3,第10行的if触发,e2.ilosc
增加1,使其成为6e1.ilosc
(4)添加到e2.ilosc
(6)中。4+6=10,因此e2。ilosc
现在是10x增加到4,循环停止执行,程序打印10。使用笔和纸可以跟踪对象成员的值。在使用调试器之前,这是一种更好的方法,因为您的问题非常简单。当您有很多变量要跟踪,并且它们的值会以微妙的方式多次更改时,最好使用调试器
使用笔和纸跟踪两个
Echo
对象的ilosc
值。我否决了这个问题,因为没有证据表明对这个代码执行了任何调试。请您的问题向我们展示您的调试发现了什么,以及关于特定代码行的特定问题。见:和。正确地缩进代码,它是不可读的。2.在纸上执行每条指令,并在每条指令后写入每个变量的值,您就会知道。或者使用调试器逐步检查代码,并在每条指令后检查变量的值。如果代码缩进正确,阅读代码会容易得多。这是一个立体图形。。。
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