理解for循环和条件

时间:2012-05-22 18:34:41

标签: java for-loop

以下是我无法理解的代码。输出为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;
        }
    }
  }
}  ​ 

2 个答案:

答案 0 :(得分:5)

原因是因为++ y在打印前递增y。

y ++会做你期望的事情

答案 1 :(得分:0)

当进入x6的循环迭代时,y13,正如您所说。然后y立即递增到14x大于4,因此执行System.out.print(++y + " ");。在++y打印之前,y会将15增加到{{1}}。