我是Java编程的新手,我想猜测为什么输出以下代码:
public class ForLoop {
public static void main(String[] args) {
int x;
for (x=1; x<=2; x++) {
x += 3;
}
System.out.print(x);
}
}
是5而不是7!对于第一次迭代,1添加到3(结果:4)并且它存储在变量x中,因此x是4.在第二次迭代中,我们添加3到4,我们必须获得7.错误可能很容易找到但我无法抓住它。请帮助和谢谢。
答案 0 :(得分:4)
这部分:
for (x=1; x<=2; x++)
表示x将在每次迭代结束时递增。因此,在第一次迭代中,由于这个原因,将3添加到x:
x += 3;
导致值为4.然后,在该迭代结束时,x增加1,变为5.由于5大于2,因此循环关闭。
答案 1 :(得分:1)
这里使用x作为迭代器和更新变量的大问题。这就是计算机的发展方向。
当你在for循环中时,x最初为1,然后你向它添加三个,然后你的for循环上的迭代器后来再添加1(使其为5)。此时,您的条件(x <= 2)为假,因为for循环已完成。
将其更改为此,您将获得所需的结果:
public class ForLoop {
public static void main(String[] args) {
int x = 1;
for (int y = 0; y <= 1; y++) {
x += 3;
}
System.out.print(x);
}
}
答案 2 :(得分:1)
在第一次通过时,进行体,x变为4.然后进行增量。 (for循环的第3个参数),结果x为5。 在第二次传递中,条件未满足,因为x已经是5,但是运行循环需要小于或等于2。因此,循环将停止,x将被打印5。
答案 3 :(得分:0)
代码
int x;
for (x=1; x<=2; x++) {
x += 3;
}
的工作原理如下:
int x;
x = 1; // for-initialization
while (x <= 2) { // for-condition
x += 3; // for-body
x++ // for-increment
}
特别地:
答案 4 :(得分:0)
在第一次迭代之后x就像你说的那样,但是然后执行x ++,因此x变为5. 5大于2(x <= 2),因此迭代停止。