我是Java的新手,我正在尝试理解以下代码的逻辑。任何人都可以向我解释如何
y = x - y;
给出输出0 0 1 1 2 1 3 2 4 2
?
class MyFirstApp {
public static void main(String [] args) {
int x = 0;
int y = 0;
while ( x < 5 ) {
y = x - y;
System.out.print(x + " " + y + " ");
x = x + 1;
}
}
}
答案 0 :(得分:1)
你必须把纸和笔/铅笔弄掉,才能学习编码家伙的逻辑。这次我会帮助你,但是为了让你开始。
第一次通过
x = 0 y = 0
y = x - y = 0 - 0 = 0
x = x + 1 = 0 + 1 = 1
第二次通过
x = 1 y = 0
y = x - y = 1 - 0 = 1
x = x + 1 = 1 + 1 = 2
第三次通过
x = 2 y = 1
y = x - y = 2 - 1 = 1
x = x + 1 = 2 + 1 = 3
第四次通过
x = 3 y = 1
y = x - y = 3 - 1 = 2
x = x + 1 = 3 + 1 = 4
最后时间
x = 4 y = 2
y = x - y = 4 - 2 = 2
x = x + 1 = 4 + 1 = 5
在我看来,通过这样的逻辑是了解它在代码中如何工作的最佳方式
答案 1 :(得分:0)
while ( x < 5 ) {
y = x - y;
System.out.print(x + " " + y + " ");
x = x + 1;
}
作为x=0
,此循环将执行到x>=5
,并且在每次迭代中都会打印x
和y
的值。您会注意到,在每次迭代结束时,变量x
将递增。因此循环将执行5次。
屈服:
第一次迭代:x = 0,y = x - y = 0 - 0 = 0,从而显示0 0
。
在第二次迭代中,x = 1,y = x - y = 1 - 0 = 1,因此打印1 1
等等