カスタマイズが楽しいswitch 文


アレサ 「次は・・\(^^)/


switch 文のお時間で~す」


ソーラー「きたきた~~~


switch 文だよ。


このswitch 文は まるでスイッチを押すように


自分の好きな命令文を選んで実行させることができるんだよ(^^)


どのようにswitch 文が記述されるか?


早速


次のプログラムをみてみよう。


switch 文は


この次のプログラムをプロトモデル(元型)として


いろいろ変形して記述することができるんだ。


#include <stdio.h>


int main(void){


int a=1;


switch (a){


case 1:

printf("おはようございます\n");

break;

case 2:

printf("こんにちは\n");

break;

case 3:

printf("こんばんは\n");

break;

default:

printf("24時間営業です\n");

break;

}


return 0;

}


プログラムの実行結果


おはようございます


ソーラー「


たのしいねえ ねえ?」


なんか興奮しているソーラー。


マックス 「switch 文か・・・なんか整った感じのプログラムだな。」


ソーラー

「このswitch 文のプログラムはいじりがいがあるんだ。


ミニ4駆と同じで


自分流にカスタマイズできるからね。


まあ、まずはみるところは


恒例の


このswitch 文のプログラムでもやはり一番最後は


return 0;

}

となってるね。


お次は


case 1:

case 2:

case 3:

default:


において;(セミコロン)でなく:(コロン)


となっているところがポイントかな。


ここがまちがえやすい・・・?


どうかな?


そんなことはない(^^)・・・?


break;については すぐに意味をみていくよ。


この


switch 文のプログラムは


int a;


で作製された変数aに

1

2

3


いずれかの数値を格納すると


switch (a)の変数aにも


1

2

3


いずれかの数値が格納されることになります


なぜなら


int a;


で作製された変数aが


switch (a)のaで用いられているからです



その

switch (a)の変数aに代入された数値

1

2

3

に対応して


case 1:

case 2:

case 3:

後に続く


いずれかの命令文が実行される


というしくみになっているんだ(^^)/


とっても便利~~~


だから


このswitch 文をつかえば


いくつか命令文を用意しておいて


まるでスイッチを押すように


実行したい命令文だけを実行することができるんだよ。



この今のswitch 文プログラムを例にすると


case 1:と番号をつけられた命令文を実行したければ


変数aに


a=1;


を実行して1を代入するか


もしくは直接


switch(1)と


switch(a)の()の中の


変数aに1を格納するだけでピンポイントに


case 1:


の命令文を実行することができるんだよおおおおおぉぉぉぉぉ~~んんん


では


case 2:


と番号をつけられた命令文を実行したいときは・・・


次のプログラムのように


int aによって生成される変数aに


2を代入すると


switch(a)

switch(2)


となり→」


#include <stdio.h>

int main(void){

int a=2;


switch (a){


case 1:

printf("おはようございます\n");

break;

case 2:

printf("こんにちは\n");

break;

case 3:

printf("こんばんは\n");

break;

default:

printf("24時間営業です\n");

break;

}

return 0;

}


ソーラー「→


case 2:


のあとにつづく命令文が実行され


プログラムの実行結果は


こんにちは


が表示されます。」


マックス 「こんのぉ~


default:


ってなにかいの~~」


ソーラー 「この


default:


というのは


このプログラムを例に取ると

int aによって生成される変数aに

代入された数値が


case 1:

case 2:

case 3:


に対応する


1,2,3のいずれの数値でもない場合


default:の次に記述された命令文を実行する


というシステムになっているんだ。


だから


int a=5;とした次のプログラム→」


#include <stdio.h>

int main(void){

int a=5;


switch (a){


case 1:

printf("おはようございます\n");

break;

case 2:

printf("こんにちは\n");

break;

case 3:

printf("こんばんは\n");

break;

default:

printf("24時間営業です\n");

break;

}

return 0;

}


ソーラー「→


では


switch (5)


となるので


case 1:

case 2:

case 3:

に対応する命令文は実行されないので


default:につづく命令文


printf("24時間営業です\n");


が実行され


プログラムの実行結果は


24時間営業です


が表示されることになります。」


マックス 「なるほどぉ~ if else文の elseみたいだなぁ


ソーラーよ。」


ソーラー


「そ~うぅなんでぇえ~~~すぅぅ


さあ、それではっ


お次は このプログラムの中のbreak文


break;


についてみていこう。


break;


の仕組みがよくわかる方法があるんだ


今のプログラムはこんなだったね

👇

#include <stdio.h>

int main(void){


int a=1;


switch (a){


case 1:

printf("おはようございます\n");

break;

case 2:

printf("こんにちは\n");

break;

case 3:

printf("こんばんは\n");

break;

default:

printf("24時間営業です\n");

break;

}


return 0;

}


プログラムの実行結果


おはようございます



ソーラー「👆


ところで このプログラムを


次のプログラムのように→」


#include <stdio.h>

int main(void){

int a=1;


switch (a){


case 1:

printf("おはようございます\n");


case 2:

printf("こんにちは\n");


case 3:

printf("こんばんは\n");


default:

printf("24時間営業です\n");

}

return 0;

}




ソーラー「→


break;


を全部とりのぞいたら


プログラムの実行結果はどうなるかな?」


マックス 「なはは switch文は


なかなか カスタマイズし甲斐があるじゃないか」


ソーラー

「int a=1;をうちこむと


switch (1)


となり


最初の


case 1:

printf("おはようございます\n");


が実行されるよね。」


マックス 「まあ、普通かな?」


ソーラー

「ところが


break;


がないと


次の命令文

case 2:

printf("こんにちは\n");

さらにその次の命令文

case 3:

printf("こんばんは\n");

さらにその次の命令文

default:

printf("24時間営業です\n");


まで


一気に全部実行されちゃうんだよ。


プログラムの実行結果は


おはようございます

こんにちは

こんばんは

24時間営業です


となります。



int a=2;と


プログラムを記述すれば→」


#include <stdio.h>

int main(void){

int a=2;//👈ここに注目


switch (a){


case 1:

printf("おはようございます\n");


case 2:

printf("こんにちは\n");


case 3:

printf("こんばんは\n");


default:

printf("24時間営業です\n");


}

return 0;

}



ソーラー「→


最初の命令文

case 1:

printf("おはようございます\n");

は実行されず


それ以下の命令文

case 2:

printf("こんにちは\n");


case 3:

printf("こんばんは\n");


default:

printf("24時間営業です\n");


が実行され


プログラムの実行結果は


こんにちは

こんばんは

24時間営業です


になるんだよ。」


マックス 「break文か


break;


で実行したい命令文だけを


実行させる仕組みとなっているのか・・・」



おまけの解説😊


switch (a){


case 1:

printf("おはようございます\n");

break;

case 2:

printf("こんにちは\n");

break;

case 3:

printf("こんばんは\n");

break;

default:

printf("24時間営業です\n");

break;

}


の中の


break;



が実行されると


switch (a){}


の命令文の実行から抜けることになります

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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