多重ループ

for文を使って、以下のように描く。

  ★★★★★
  ★★★★☆
  ★★★☆☆
  ★★☆☆☆
  ★☆☆☆☆

考え方は、5行あるため、for文で5回繰り返す。5列あるため、1行ごとに★と☆の描画回数が以下になるように内側のfor文を工夫する。

 行方向の繰り返し1回目、★は5つ、☆は0。
 行方向の繰り返し2回目、★は4つ、☆は1。
 行方向の繰り返し3回目、★は3つ、☆は2。
 行方向の繰り返し4回目、★は2つ、☆は3。
 行方向の繰り返し5回目、★は1つ、☆は4。

for文で5回繰り返すとき、「for (loop=0; loop<5; loop++)」は常套手段。loopの値は0、1、2、3、4と増えていく。このとき変数loopは内側のfor文で☆を描く回数でもある。内側のfor文で★を描く回数は「5-loop」。

for (loop=0; loop<5; loop++) {
  for (bstar=0; bstar<5-loop; bstar++) {
    ★を描画;
  }
  for (wstar=0; wstar<loop; wstar++) {
    ☆を描画;
  }
}

上記のプログラムを適宜、言語の文法に書き換えればよい。5という数値を変数に代入しておけば、プログラムの柔軟性は(若干)高くなる。

この記事が気に入ったらサポートをしてみませんか?