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)を食べられても


おんなじだったのです。」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る