1

これらのループは何ですか:

while (x <= gridWidth) {
            while (y <= gridHeight) {
                System.out.println("X: " + x + ", Y: " + y);
                y++;
            }
            x++;
        }

これを出力する:

    X: 0, Y: 0
    X: 0, Y: 1
    X: 0, Y: 2
    X: 0, Y: 3
    X: 0, Y: 4
    X: 0, Y: 5
    X: 0, Y: 6
    X: 0, Y: 7
    X: 0, Y: 8
    X: 0, Y: 9
    X: 0, Y: 10
    X: 0, Y: 11
    X: 0, Y: 12
    X: 0, Y: 13
    X: 0, Y: 14
    X: 0, Y: 15
    X: 0, Y: 16
    X: 0, Y: 17
    X: 0, Y: 18
    X: 0, Y: 19
    X: 0, Y: 20
    X: 0, Y: 21
    X: 0, Y: 22
    X: 0, Y: 23
    X: 0, Y: 24
    X: 0, Y: 25
    X: 0, Y: 26
    X: 0, Y: 27
    X: 0, Y: 28
    X: 0, Y: 29
    X: 0, Y: 30
    X: 0, Y: 31
    X: 0, Y: 32
    X: 0, Y: 33
    X: 0, Y: 34
    X: 0, Y: 35
    X: 0, Y: 36
    X: 0, Y: 37
    X: 0, Y: 38
    X: 0, Y: 39
    X: 0, Y: 40
    X: 0, Y: 41
    X: 0, Y: 42
    X: 0, Y: 43
    X: 0, Y: 44
    X: 0, Y: 45
    X: 0, Y: 46
    X: 0, Y: 47
    X: 0, Y: 48
    X: 0, Y: 49
    X: 0, Y: 50

?

私はgridWidth = 50それを印刷したので、私はそれを確信しています。

4

5 に答える 5

9

yネストされたループが開始する前に、ゼロにリセットする必要があります。yそれ以外の場合、外側のループは 50 回実行されますが、最後の 49 回は内側のループがまったく実行されませんgridHeight

于 2012-05-03T18:20:18.983 に答える
2

JoshuaBlochがその本EffectiveJavaで示唆しているように、可能な限り、whileの代わりにfor構文を使用してください。エラーが発生しにくく、簡潔であり、事実上、エラーを防ぐことができたはずです。

for (int x=0;x <= gridWidth;x++)
    for (int y=0;y <= gridHeight;y++)
        System.out.println("X: " + x + ", Y: " + y);
于 2012-05-03T18:34:27.553 に答える
0
final int gridWidth = 50, gridHeight = 50;

for(int x = 0; x <= gridWidth; x++)
  for(int y = 0; y <= gridHeight; y++)
    System.out.println("X: " + x + ", Y: " + y);
于 2012-05-03T18:31:34.763 に答える
0

各ループで y を再初期化していません

    while (x <= gridWidth) {
        y = 0;
        while (y <= gridHeight) {
            System.out.println("X: " + x + ", Y: " + y);
            y++;
        }
        x++;
    }
于 2012-05-03T18:27:09.333 に答える
0
int y=0,x=0;
while (x <= gridWidth) {
   while (y <= gridHeight) {
    System.out.println("X: " + x + ", Y: " + y);
    y++;
  }
x++;
y=0;
}
于 2012-05-03T18:27:11.520 に答える