if文ネスト(入れ子)多重構造をつくってみようっ その2
マックス 「if文の中にif文か・・・
よし、いろいろ改造してみるか・・ははっ\(^^)/」
ソーラー「おもしろいことかんがえちゃったんだ~~~
if(1){ }
この命令文の中に
if(1){ }を もうひとつかきこんでみると
if(1){ if(1){ } }とな~~~る。
まず 一番左のif(1)により それにつづくブロック{}内の命令文
if(1){ } が実行されることになります。
そして次に
if(1)によりif(1){ } 内のブロック{}内の
命令文が実行される。
というわけです。
どんどんif(1){ } をif(1){ } の{ }の中にかきこんでいくと
if(1){ if(1){ if(1){ } } }
if(1)文 3重ネスト構造
if(1){ if(1){ if(1){ if(1){ } } } }
if(1)文 4重ネスト構造
if(1){ if(1){ if(1){ if(1){ if(1){ } } } } }
if(1)文 5重ネスト構造
if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ } } } } } }
if(1)文 6重ネスト構造
if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ } } } } } } }
if(1)文 7重ネスト構造
この7重ネスト構造で 真ん中のif(1){ } に
printf("お花見にいこう!\n");
を代入してえ~~~
このように
👇
if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } } } } }
👆
記述したものぉお
アーティスティックにプログラムに仕上げると
以下のようになります
👇
#include <stdio.h>
int main(void){
if(1)
{ if(1)
{ if(1)
{ if(1)
{ if(1)
{ if(1)
{ if(1)
printf("お花見にいこう!\n");
}
}
}
}
}
}
return 0;
}
さらに
もっときれいに
変形すると
#include <stdio.h>
int main(void){
if(1){
if(1) {
if(1){
if(1){
if(1) {
if(1) {
if(1)
printf("お花見にいこう!\n");
}
}
}
}
}
}
return 0;
}
のようになります
マックス 「
{
{
{
{
{
{
や
}
}
}
}
}
}
のような表現はときどき
なにかのプログラムで
みかけるやつじゃないか・・・」
ソーラー 「このプログラムを
実行すると
プログラムの実行結果
お花見にいこう!
と表示されるんです。」
かもしかさん 「わんわん!」
マックス
「・・本当に カモシカさんか・・・?
if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } } } } }
において
if(1)はif(1){ }内の命令文を実行することから
if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } } } } }
(if(1)の数は7個です)
は
if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } } } }
に等しくなり(if(1)の数は6個です)
if(1)はif(1){ }内の命令文を実行することから
if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } } } }
は
if(1){ if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } } }
に等しくなり(if(1)の数は5個です)
if(1)はif(1){ }内の命令文を実行することから
if(1){ if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } } }
は
if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } }
に等しくなり(if(1)の数は4個です)
f(1)はif(1){ }内の命令文を実行することから
if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } }
は
if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } }
に等しくなり(if(1)の数は3個です)
f(1)はif(1){ }内の命令文を実行することから
if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } }
は
if(1){ if(1){ printf("お花見にいこう!\n"); } }
に等しくなり(if(1)の数は2個です)
f(1)はif(1){ }内の命令文を実行することから
if(1){ if(1){ printf("お花見にいこう!\n"); } }
は
if(1){ printf("お花見にいこう!\n"); }
に等しくなり(if(1)の数は1個です)
f(1)はif(1){ }内の命令文を実行することから
if(1){ printf("お花見にいこう!\n"); }
は
printf("お花見にいこう!\n");
に等しくなり
結局
printf("お花見にいこう!\n");
が実行されるわけか・・・」
かもしかさん 「ぱくっぱくっぱくっぱくっ
ぱくぱくぱくぅ・・・」
ソーラー 「ああっ僕のプログラム、そんなにおいしいのかい
ぴく、ぴくっ」
マックス 「if(1)がたべられていってるぞ」
アレサ 「・・・・・
#include <stdio.h>
int main(void){
printf("お花見にいこう!\n");
return 0;
}
・・・かんたんなプログラムになっちゃいました。」
マックス 「if(1)・・・うまいのか
いいじゃないか」
アレサ「プログラムの実行結果は先ほどのプログラムと同じ
お花見にいこう!です。
そうですね。マックスさんの言ったように
if(1)は{}内の命令文を実行するという
システムなので
さきほどのプログラム内の命令文
if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } } } } }
の場合
コンピュータ内で
次のように つぎつぎと
if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } } } } }
if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } } } }
if(1){ if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } } }
if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } }
if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } }
if(1){ if(1){ printf("お花見にいこう!\n"); } }
if(1){ printf("お花見にいこう!\n"); }
printf("お花見にいこう!\n");
プログラムが実行されていきます。
これをみると
最終的に
printf("お花見にいこう!\n");
が実行されています
ですので
#include <stdio.h>
int main(void){
if(1){
if(1) {
if(1){
if(1){
if(1) {
if(1) {
if(1)
printf("お花見にいこう!\n");
}
}
}
}
}
}
return 0;
}
と
プログラム
#include <stdio.h>
int main(void){
printf("お花見にいこう!\n");
return 0;
}
は等しい実行結果をだすことがわかります。
つまり if(1)を食べられても
おんなじだったのです。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます