目次

  • if文の使い方
  • switch文の使い方
  • どういう時に使い分けるの?

    if文の使い方

C言語を学ぶ上で、条件式を表すif文は欠かせないものです。
if文の基本文法は以下の通りになります。

if(条件式){
条件式にあてはまるときに実行する文
}

実際にif文はこのように使います。
*aが100ならば、『aは100です』と表示させる

if(a==100){
printf(“aは100です\n”);
}

 条件式にあてはまらない場合の処理も記述したい場合はelse文を付け加えます。

if(条件式){
条件式にあてはまるときに実行する文
}else{
条件式にあてはまらないときに実行する文
}

 条件式が複数ある場合は、else-if文とします。

           if(条件式){
条件式にあてはまるときに実行する文
}else if(条件式2){
条件式2にあてはまるときに実行する文
}else{
条件式1,条件式2のどちらにもあてはまらないときに実行する文
}
 

 例として、以下のような条件をif文で表すとこのようになります。
*aが100ならば、『aは100です』と表示させる。
Aが200ならば『aは200です』と表示させる。
どちらにもあてはまらない場合は『aは100でも200でもありません』と表示させる。

if(a==100){
printf(“aは100です\n”);
}else if(a==200){
printf(“aは200です\n”);
}else{
printf(“aは100でも200でもありません\n”);
}

 このように条件式はいくらでもつなげることもできます。
入れ子(ネスト)にすることもできます。

           if(条件式){
if(条件式){
文;
}else{
文;

}else{
文;
}

条件を複数個つなげたり、入れ子構造にすると様々な条件分岐を実装することが出来、表現の幅は広がりますが、構造が複雑になるためにバグの原因になることもあります。
主に注意すべき点は、構文中の”{}”がどこかで抜けてしまい、コンパイルエラーになることです。
if文に限らずプログラミングする時にはうまくインデントを使って、見やすくどこからどこまでがif文のブロックなのかをわかりやすく記述する必要があります。
そして、複数条件を設定した場合、すべてのif文の条件分岐を把握しきれずにエラーが発生するということもあります。
複数条件を設定する場合は、例外的な動作が起こらないか、動作のバリエーションをすべて洗い出してバグを未然防ぐ必要があります。
if文は便利で必ず使うものですから、これらの点に注意しつつ、しっかり構文と使い方を覚えるようにしましょう。

switchの使い方

C言語にはif文のほかにも条件分岐する構文があります。
それがswitch文です。
switch文の基本文法は以下の通りになります。

           switch(式){
case 定数1:
式が定数1のときに実行する文
break;
case 定数2:
式が定数2のときに実行する文
break;
case 定数3:
式が定数3のときに実行する文
break;
default:
どの定数にも一致しないときに実行する処理
}
 
 

どういう時に使い分けるの?

if文とswitch文、どちらも条件分岐をするときに使うことはわかりました。
では、どちらの文法でも実装できる場合、どのように使い分ければよいのでしょうか?
自分が好きな方を使っていいのでしょうか?
if文とswitch文は、それぞれ適した使い方があります。
if文は、条件式が真(true)か偽(False)かを判断するのに適しています。
if文を日本語に置き換えて考えるとわかりやすいかもしれません。
『もし、条件式が真(true)ならば処理1を実行する。
もし、条件式が偽(False)ならば、処理2を実行する。』
一方、switch文は式と同一のものを比較して探すことに適しています。
そして比較対象があらかじめ分かっており複数個ある場合に使います。
switch文も日本語に置き換えると、『複数個ある定数の中で、式と同じ定数があれば、処理Xを実行する』
このように考えると、どちらの構文を使って条件分岐するか決めやすいですね。
次の例題1はif文で記述するのに適しています。
(例題1)
変数a,bがある。aとbにそれぞれ数字を代入し、aとbを乗算したときに100になればOKを表示し、それ以外の計算結果はNGと表示する。
では、これを実際にif文で記述しましょう。

次の例題2はswitch文で記述するのに適しています。
(例題2)
変数nameのアルファベットと同じものを探し、その内容をメッセージを表示する。
switch文で記述するとこのようになります。

このように、if文で記述した方がいい場合とswitch文で記述した方がいい場合がありますから、どちらが適切な表現か考えながらif文とswitch文を使い分けていきましょう。