0

下面是我无法理解的代码。输出为 13 15 x=6。我理解我们如何获得数字 13,因为当我们通过循环时,x 的值为 5,其对应的 y 值为 12。因此,如果 x > 4,我们将增加 y,从而为 u 提供 13 的值。打印下一个数字out 那么应该是 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;
        }
    }
  }
}  ​ 
4

2 回答 2

5

原因是 ++y 在打印之前增加了 y。

y++ 会做你所期望的

于 2012-05-22T18:40:11.457 回答
0

正如你所说,当进入循环迭代 where xis 6yis时。13然后y立即递增到14x大于4,所以System.out.print(++y + " ");被执行。 在打印之前++y递增。y15

于 2012-05-22T18:46:19.503 回答