我有一个关于 x++ 和循环内容的问题要问。首先,这是代码:
class MixFor5 {
public static void main(String[] args) {
int x = 0;
int y = 30;
for (int outer = 0; outer < 3; outer++) {
for(int inner = 4; inner > 1; inner--) {
x = x++;
y = y - 2;
if (x == 6) {
break;
}
x = x + 3;
}
y = y - 2;
}
System.out.println(x + " " + y);
}
}
这是我的计算方法:
内循环
第一个循环)y = -2,然后 x = 3,内循环结束
第二个循环)y = -4,x = 6,内循环结束
第三个循环)y = -6,BREAK,内循环结束。
外循环将 -2 添加到 Y,因此 y = -8
现在我们有 x = 6,y = 22,但是我们必须继续循环 2 次。在内部循环中,我们总是得到 y = -2,然后它就会中断,因为 x 仍然是 6,而在外部循环中,我们也得到 y = -2,这使我们在 2 个循环中得到 y = -8。将它添加到我们得到的 (y = -8) 中,我们得到 y = -16,将它添加到我们的整数中将得到 y = 14。
我的问题是,x++
在这种情况下如何工作?它在这里什么也不做。是因为 break;
还是因为其他原因?我认为当内循环或外循环结束时,它会给x加+1,但如果这样做,你将无法得到正确的答案。
谁能解释一下吗?
最佳答案
x = x++;
更改 x 两次。首先它将其增加到 x+1,然后将之前的值赋给它。这就是为什么它没有效果 - 先前值的分配会取消增量。
关于java - 预订 x++ 并循环 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26562582/