for文3重奏 for(){for(){for(){}}}
ソーラー 「for文ネスト(入れ子)構造が可能なら
for文にfor文ネスト(入れ子)構造を
とりこんだ
for文3重構造 for(){for(){for(){}}}
わかりやすくすると
for文3重入れ子構造 for文{for文{for文}} for(){for(){for(){}文}文}文
を用いたプログラムの
実行結果はどうなってくるかな?
そもそも この場合はうまくプログラムを実行できるのかな?
#include <stdio.h>
int main(void){
int a;
int b;
int c;
for(a=1;a<3;a++)
{
for(b=1;b<4;b++)
{
for(c=1;c<5;c++)
{
printf("%d回目のご飯はNouvel de かつおです\n",c);
}
}
}
return 0;
}
ソーラー 「プログラムを実行っと」
プログラムの実行結果
1回目のご飯はNouvel de かつおです
2回目のご飯はNouvel de かつおです
3回目のご飯はNouvel de かつおです
4回目のご飯はNouvel de かつおです
1回目のご飯はNouvel de かつおです
2回目のご飯はNouvel de かつおです
3回目のご飯はNouvel de かつおです
4回目のご飯はNouvel de かつおです
1回目のご飯はNouvel de かつおです
2回目のご飯はNouvel de かつおです
3回目のご飯はNouvel de かつおです
4回目のご飯はNouvel de かつおです
1回目のご飯はNouvel de かつおです
2回目のご飯はNouvel de かつおです
3回目のご飯はNouvel de かつおです
4回目のご飯はNouvel de かつおです
1回目のご飯はNouvel de かつおです
2回目のご飯はNouvel de かつおです
3回目のご飯はNouvel de かつおです
4回目のご飯はNouvel de かつおです
1回目のご飯はNouvel de かつおです
2回目のご飯はNouvel de かつおです
3回目のご飯はNouvel de かつおです
4回目のご飯はNouvel de かつおです
アレサ「無事にコンパイルできてます。
6回
1回目のご飯はNouvel de かつおです
2回目のご飯はNouvel de かつおです
3回目のご飯はNouvel de かつおです
4回目のご飯はNouvel de かつおです
が繰り返されています。」
てんC「このfor文の仕組みはどうなってるのでしょうか?
・・・こういう仕組みかな?
まず一番入れ子になっている
for(c=1;c<5;c++)
{
printf("%d回目のご飯はNouvel de かつおです\n",c);
}
によって
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
が形成されます。
for(a=1;a<3;a++)
{
for(b=1;b<4;b++)
{
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
}
}
のような具合です。
このようにfor{}文は{}内の命令文を繰り返すことになります
今の場合
printf("%d回目のご飯はNouvel de かつおです\n",c);
が
cの値を変えながら
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
と
4回繰り返されています
この段階では
まだ
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
が実行されることはありません。
次に
for(b=1;b<4;b++)
{
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
}
により
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
が三回生成され
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
が形成されます。
for(a=1;a<3;a++)
{
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
}
👆
このような具合にです
最後に
for(a=1;a<3;a++){}によって
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
が
👇のように2回分生成されます。
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
printf("%d回目のご飯はNouvel de かつおです\n",1);
printf("%d回目のご飯はNouvel de かつおです\n",2);
printf("%d回目のご飯はNouvel de かつおです\n",3);
printf("%d回目のご飯はNouvel de かつおです\n",4);
こうして
ようやく
最後にこれらの命令文が実行されることにより
合計6回 プログラムの実行結果に
1回目のご飯はNouvel de かつおです
2回目のご飯はNouvel de かつおです
3回目のご飯はNouvel de かつおです
4回目のご飯はNouvel de かつおです
が表示されることになります。
入れ子になっているfor{}文のほうから実行されるのですね」
ソーラー 「おおっすごい
たいしたものだね。
優雅なせつめいだね(^_-)-☆
1番内部のfor文から順に
繰り返しの命令文が生成されていくんだね
これで
for文2重構造
for文3重構造
for文4重構造
for文5重構造
・
・
・
のような
for文入れ子構造が記述されていた場合でも
どのような命令文が実行されるか
わかるようになったね。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます