*C言語* 〜15時限目〜 switch文の仕組みについて・・・
〜目次〜
switch文の仕組みについて
C言語にはif文と同じように、条件によって処理を変更する、
switch文(switch statement)
という構文があります。
switch文は以下のような構文です。
switch(式){
case 定数1:
文1;
・・・
break;
case 定数2:
文2;
・・・
break;
default:
文3;
・・・
break;
}
switch文内の「式」がcaseあとの定数値と一致すれば、
そのあとの文からbreakまでが処理されます。
どの定数値とも当てはまらなければ、
default:以下の文が処理されます。
尚、defaultは省略をすることも可能です。
実際にコードを入力します。
sample27.c
ーsample27の実行画面その1ー
整数を入力してください。
1
1が入力されました。
ーsample27の実行画面その2ー
整数を入力してください。
2
2が入力されました。
ーsample27の実行画面その3ー
整数を入力してください。
3
1か2を入力してください。
これは14時限目のsample26と全く同じ処理で、
実行結果も同じになります。
if文よりもシンプルに書くことができるのが特徴です。
switch文の場合、
値を判断する式は整数や文字でなければいけないので注意します。
break文が抜けている場合
以下のコードはsample27のbreak文を抜いたものになります。
sample28.c
ーsample28の実行画面ー
整数を入力してください。
1
1が入力されました。
2が入力されました。
1か2を入力してください。
1を入力した場合に、case1:以降の文が全て処理されてしまっています。
breakという文は、
文の流れを強制的に切る
という役割を持っています。
break文を正しい位置に入れないとおかしな結果になってしまいます。
コンパイラはbreak文がないことをエラー表示しませんので、
書く際に注意をしてください。
論理演算子を使い、複雑な条件判断処理をする
if文などの中で論理演算子を使うことで、
より複雑な処理を行うことができるようになります。
実際に以下のコードで論理演算子を組み合わせてみます。
sample29.c
ーsample29の実行画面その1ー
今日は雨が降っていますか?
YまたはNを入力してください。(Y=YES,N=NO)
Y
雨が降っているんですね。
傘を持っていきましょう。
ーsample29の実行画面その2ー
YまたはNを入力してください。(Y=YES,N=NO)
n
雨が降っていないんですね。
傘を持たなくて大丈夫です。
sample29は入力された文字によって、
条件を判断しています。
ここで、大文字と小文字の区別を無くして処理させることを考えました。
その際に、論理演算子である| |を使うことで期待通りの結果にすることができました。
尚、復習ですが文字は' 'で囲むということを忘れないでください。
条件演算子の仕組みについて
簡単な条件判断の場合には、if文を使わなくても、
条件演算子(conditional operator)
の「?:」を使って記述することができます。
以下のコードを入力してください。
sample30.c
ーsample30の実行画面ー
何番を選択しますか?
整数を入力してください。
1
Aコースを選択しました。
if文よりも簡単に記述できているのが確認できます。
条件演算子?:の使い方についてまとめます。
条件演算子
条件 ? 真のとき式1 : 偽のとき式2
全体の式の値は、
条件が真のときに式1、条件が偽のときに式2の値になります。
16時限目では何度も繰り返す処理を行うコードの、
書き方について学んでいきます。
〜END〜