0

以下は、理解に苦しむコードです。出力は 13 15 x=6 です。ループを通過するとき、x の値は 5 であり、対応する y の値は 12 であるため、13 という数値を取得する方法を理解しています。したがって、x > 4 の場合は、y をインクリメントして u の値を 13 にします。次に出力される数値x の次の値は 6 で、対応する y の値は 13 であるため、out は 14 になるはずです。そのため、インクリメントすると 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

あなたが言ったように、ループの反復に入るとき、xは、です。その後、すぐににインクリメントされます。 より大きいので、実行されます。 印刷される前に増分します。6y13y14x4System.out.print(++y + " ");++yy15

于 2012-05-22T18:46:19.503 に答える