for ループの入れ子でつまづく

for ループの中に for ループを埋め込むと、それぞれのループ回数を掛け算した結果が、全体の繰り返しの回数となります。

と「Processingをはじめよう」にあるけど、for ループの入れ子がどう処理されるかピンとこない。

同じ出力結果になる for ループと結果のベタ書きのコードを並べて確認する。

for ループ

size(480, 120);
background(0);
noStroke();
for (int y = 0; y <= 40; y += 40) {
  for (int x = 0; x <= 40; x += 40) {
    fill(255, 140);
    ellipse(x, y, 40, 40);
  }
}

ベタ書き

size(480, 120);
background(0);
noStroke();
fill(#54DBB8);
ellipse(0, 0, 40, 40);
ellipse(0, 40, 40, 40);
ellipse(40, 0, 40, 40);
ellipse(40, 40, 40, 40);
  1. (0, 0)
  2. (0, 40)y += 40。親ループの加算処理がされる
  3. (40, 0)x += 40。子ループの加算処理がされる
  4. (40, 40)x += 40y += 40。親と子ループの加算処理がされる

みたいな感じなのかなぁ。まだちゃんとわかってない。