p.102 2重ループ
・繰返しの内側に繰返しを記述することで2重ループを表現できる。
・for文の2重ループによって「n回繰返す中で、各m回繰返す」ことを記述できて便利。
例:ダンジョンの1階から100階まで、それぞれ10個の部屋があるので、中にいるモンスターの数。
※ for文では対象が1行のみの場合{}を省略できるが、特に2重ループでは省略が推奨されないことが多い。
・for文で用いるカウンタ用の変数は外側と内側で別にすること。主に、iとjが使われることが多い。
p.102 list0418.cpp
//p.102 list0418.cpp
#include <stdio.h>
int main(void)
{
for (int i = 1; i <= 9; i++) { //1の段から9の段まで繰返す
for (int j = 1; j <= 9; j++) { //×1から×9まで繰返す
printf("%3d", i * j); //積を3桁で表示
}
putchar('\n'); //改行
}
return 0;
}
p.107 演習4-20 ヒント
・上見出し2行はputsで文字列として表示しても良いし、繰返しで表示しても良い
・3行目からは、内側の繰返しに入る前に横タイトルを表示する
・段数が得られるカウンタiを用いて、printf(" %d |", i); とすれば良い
作成例
//p.107 演習4-20 = p.102 list0418.cpp・改
#include <stdio.h>
int main(void)
{
puts(" | 1 2 3 4 5 6 7 8 9"); //【追加】
puts("---+---------------------------"); //【追加】
for (int i = 1; i <= 9; i++) { //1の段から9の段まで繰返す
printf(" %d |", i); //【追加】横タイトルを表示
for (int j = 1; j <= 9; j++) { //×1から×9まで繰返す
printf("%3d", i * j); //積を3桁で表示
}
putchar('\n'); //改行
}
return 0;
}
【自由参加課題】p.107 演習4-20・改
・putsで表示している1~9をfor文で記述しよう