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)文 7重ネスト構造


if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ if(1){ } } } } } } }

if(1)文 8重ネスト構造


この8重ネスト構造で 真ん中の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;

}


マックス 「

{

{

{

{

{

{ 

}

}

}

}

}

}

のような表現はときどき


なにかのプログラムで


みかけるやつじゃないか・・・」


ソーラー 「このプログラムを


コンパイルすると


お花見にいこう!


と表示されるんです。」


かもしかさん 「わんわん!」


マックス


「・・本当に カモシカさんか・・・?


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){ 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){ printf("お花見にいこう!\n"); } } } } } }

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){ printf("お花見にいこう!\n"); } } } }

に等しくなり


f(1)はif(1){  }内の命令文を実行することから


if(1){ if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } } }

if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } }

に等しくなり


f(1)はif(1){  }内の命令文を実行することから


if(1){ if(1){ if(1){ printf("お花見にいこう!\n"); } } }

if(1){ if(1){ printf("お花見にいこう!\n"); } }

に等しくなり


f(1)はif(1){  }内の命令文を実行することから


if(1){ if(1){ printf("お花見にいこう!\n"); } }

if(1){ printf("お花見にいこう!\n"); }

に等しくなり


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){ 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で共有
  • はてなブックマークでブックマーク

作者を応援しよう!

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

応援したユーザー

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