カスタマイズが楽しい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

に対応して


case 1:

case 2:

case 3:

後に続く


いずれかの命令文を実行する


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


とっても便利~~~


だから


このswitch 文をつかえば


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


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


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



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


case 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");


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;


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


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



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

作者を応援しよう!

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

応援したユーザー

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