减法(初级)
Subtraction (beginner)
public class Main {
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;
}
}
}
当我自己计算这个数学的时候。我得到这些答案:
- y = 0 - 0 = 0
- y = 1 - 0 = 1
- y = 2 - 1 = 1
- y = 3 - 1 = 2
- y = 4 - 2 = 2
01122
但是当我编译它的时候。我得到答案
02356
我只是不明白。有人可以解释一下吗?
你正在打印 x+y 而不是 y
0+0=0 ; 1+1=2; 1+2=3; 2+3=5; 2+4=6
02356
在第一次迭代中 x=0,y=0 所以 x-y = 0 = y 和 x+y=0 所以 0
将被打印。
在第二次迭代中 x=1,y=0 所以 x-y = 1 = y 和 x+y=2 所以 2
将被打印。
因此 x 和 y 将被更新。
在您的计算中,您没有更新 y
使用debug,你会看到迭代是正确的,因为你是在x+y操作加法后操作x值
public class Main {
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;
}
}
}
当我自己计算这个数学的时候。我得到这些答案:
- y = 0 - 0 = 0
- y = 1 - 0 = 1
- y = 2 - 1 = 1
- y = 3 - 1 = 2
- y = 4 - 2 = 2
01122
但是当我编译它的时候。我得到答案
02356
我只是不明白。有人可以解释一下吗?
你正在打印 x+y 而不是 y
0+0=0 ; 1+1=2; 1+2=3; 2+3=5; 2+4=6
02356
在第一次迭代中 x=0,y=0 所以 x-y = 0 = y 和 x+y=0 所以 0
将被打印。
在第二次迭代中 x=1,y=0 所以 x-y = 1 = y 和 x+y=2 所以 2
将被打印。
因此 x 和 y 将被更新。
在您的计算中,您没有更新 y
使用debug,你会看到迭代是正确的,因为你是在x+y操作加法后操作x值