以下是我无法理解的代码。输出为13 15 x = 6。我理解我们如何获得数字13,因为当我们经历循环时,x的值是5并且其对应的y值是12.因此,如果x> 4然后我们递增y给出值为13.然后打印的下一个数字应该是14因为x的下一个值是6而它的相应y值是13所以当你递增时它将是14.但是当我运行代码,它给出了不同的答案。有人可以帮忙吗?谢谢
public class Output {
public static void main(String[] args) {
Output o = new Output();
o.go();
}
void go() {
int y = 7;
for (int x = 1; x < 8; x++) {
y++;
if (x > 4) {
System.out.print(++y + " ");
}
if (y > 14) {
System.out.println(" x = " + x);
break;
}
}
}
}
答案 0 :(得分:5)
原因是因为++ y在打印前递增y。
y ++会做你期望的事情
答案 1 :(得分:0)
当进入x
为6
的循环迭代时,y
为13
,正如您所说。然后y
立即递增到14
。 x
大于4
,因此执行System.out.print(++y + " ");
。在++y
打印之前,y
会将15
增加到{{1}}。