TPY ENGINEERING VLOG

TPY ENGINEERING VLOG(C,JAVA)

*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

f:id:YuyaTerayama:20180905155249p:plain

ーsample27の実行画面その1ー

整数を入力してください。

1

1が入力されました。

ーsample27の実行画面その2ー

整数を入力してください。

2

2が入力されました。

ーsample27の実行画面その3ー

整数を入力してください。

3

1か2を入力してください。

これは14時限目のsample26と全く同じ処理で、

実行結果も同じになります。

if文よりもシンプルに書くことができるのが特徴です。

switch文の場合、

値を判断する式は整数や文字でなければいけないので注意します。

 

break文が抜けている場合

以下のコードはsample27のbreak文を抜いたものになります。

sample28.c

f:id:YuyaTerayama:20180905155634p:plain

ーsample28の実行画面

整数を入力してください。

1

1が入力されました。

2が入力されました。

1か2を入力してください。

1を入力した場合に、case1:以降の文が全て処理されてしまっています。

breakという文は、

文の流れを強制的に切る

という役割を持っています。

break文を正しい位置に入れないとおかしな結果になってしまいます。

コンパイラはbreak文がないことをエラー表示しませんので、

書く際に注意をしてください。

 

論理演算子を使い、複雑な条件判断処理をする

if文などの中で論理演算子を使うことで、

より複雑な処理を行うことができるようになります。

実際に以下のコードで論理演算子を組み合わせてみます。

sample29.c

f:id:YuyaTerayama:20180905160649p:plain

ーsample29の実行画面その1ー

今日は雨が降っていますか?

YまたはNを入力してください。(Y=YES,N=NO)

Y

雨が降っているんですね。

傘を持っていきましょう。

ーsample29の実行画面その2ー

YまたはNを入力してください。(Y=YES,N=NO)

n

雨が降っていないんですね。

傘を持たなくて大丈夫です。

sample29は入力された文字によって、

条件を判断しています。

ここで、大文字と小文字の区別を無くして処理させることを考えました。

その際に、論理演算子である| |を使うことで期待通りの結果にすることができました。

尚、復習ですが文字は' 'で囲むということを忘れないでください。

 

条件演算子の仕組みについて

簡単な条件判断の場合には、if文を使わなくても、

条件演算子(conditional operator)

の「?:」を使って記述することができます。

以下のコードを入力してください。

sample30.c

f:id:YuyaTerayama:20180905161544p:plainーsample30の実行画面ー

何番を選択しますか?

整数を入力してください。

1

Aコースを選択しました。

if文よりも簡単に記述できているのが確認できます。

条件演算子?:の使い方についてまとめます。

条件演算子

条件 ? 真のとき式1 : 偽のとき式2

条件演算子は3つのオペランドをとる演算子です。

全体の式の値は、

条件が真のときに式1、条件が偽のときに式2の値になります。

 

16時限目では何度も繰り返す処理を行うコードの、

書き方について学んでいきます。

 

〜END〜