複数の命令文をif文によって実行するにはブロック{}でくくります  


アレサ 「さて、if文において


if(1)の場合はif(1)に続く命令文は実行され


if(0)の場合はif(0)に続く命令文は実行されません。


では


if(1)やif(0)に影響をうけるのは、どの命令文まででしょうか?


if(1)命令文;


if(0)命令文;


ともに


セミコロン;で区切られた前の命令文までが


if(1)やif(0)の影響をうけます。


次のプログラムで確認してみましょう。」


#include <stdio.h>


int main(void){


if (1)

printf("らっき~\n");


/* この printf("らっき~\n"); の命令文までがif(1)の影響をうけます。*/


printf("やっほー\n");

/*この printf("やっほー\n"); の命令文はif(1)に関係なく実行されます。*/


if(0)

printf("らっぴ~\n");


/*この printf("らっぴ~\n"); の命令文までがif(0)の影響をうけます。のでif(0)の働きによりこの命令文printf("らっぴ~\n");は実行されません。*/


printf("わっほうー\n");

/*この printf("わっほうー\n"); の命令文はif(0)に関係なく実行されます。*/


return 0;


}


プログラムの実行結果


らっき~

やっほー

わっほうー


アレサ 「


このようにif(1)やif(0)は

if(1)やif(0)につづく

1つの命令文にしか影響をあたえることはできません。


それでは


一度に

if(1)やif(0)の影響を複数の命令文に与えるにはどうしたらよいでしょうか?


その場合はつぎのプログラムのように


if(1)やif(0)につづく複数の命令文を ブロック{ }で括ります。」



#include <stdio.h>


int main(void){


if(1){

printf("らっき~\n");

printf("やっほー\n");

}


if(0){

printf("らっぴ~\n");

printf("わっほうー\n");

}


return 0;

}


プログラムの実行結果


らっき~

やっほー


{ }でくくられた


if(1)の影響を受けた次の2つの命令文


printf("らっき~\n");

printf("やっほー\n");


は実行され


{ }でくくられた


if(0)の影響を受けた次の2つの命令文


printf("らっぴ~\n");

printf("わっほうー\n");


は実行されません。


ではっ 次のプログラムはどのような構造になっているでしょうか


_(^^)わかるかな」


#include <stdio.h>


int main(void){


if(1){

printf("らっき~\n");

printf("やっほー\n");


if(0){

printf("らっぴ~\n");

printf("わっほうー\n");

}

}

return 0;

}


アレサ 「


このreturn 0;の下に括弧はいつもどおり1つ並んでいます。


return 0;の上には括弧は2つ並んでいます。


面白いですね。


このプログラムの構造は


まずint main(void){     return 0;}によって


次の命令文


if(1){

printf("らっき~\n");

printf("やっほー\n");


if(0){

printf("らっぴ~\n");

printf("わっほうー\n");

}

}

が囲まれています。


さらにif(1){ }によって


printf("らっき~\n");

printf("やっほー\n");


if(0){

printf("らっぴ~\n");

printf("わっほうー\n");

}


の命令文が囲まれています。


ここまでくると大分構造がみえてきました(^^)/


つまり

if(1){ }のif(1)により、


{ }のなかの命令文


printf("らっき~\n");

printf("やっほー\n");


if(0){

printf("らっぴ~\n");

printf("わっほうー\n");

}

は実行されます。


その際

printf("らっき~\n");

printf("やっほー\n");

はそのまま実行されますが


if(0){

printf("らっぴ~\n");

printf("わっほうー\n");

}


のif(0){ }の{ }の中の命令文はif(0)により実行されず


プログラムの実行結果は


らっき~

やっほー


と標示されます


このように複数の命令文をブロック{}でくくるという考え方は


プログラムのいたるところででてきます😊」 

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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