*C言語* 〜14時限目〜 if文で複数の文を処理する・・・
〜目次〜
if文で複数の文を処理する
13時限目のsample22では、条件が「真」だった場合に、
1つだけの文からなる簡単な処理を行いました。
if文では条件が真だった場合に複数の処理を行うことができます。
そのためには、
{ }でブロックを作り、
複数の文をまとめます。
するとブロックの中では原則どおり、
1文ずつ処理が行われます。
if(条件){
文①;
文②;
・・・
}
のようにして記述します。
実際にコードで書いて見ましょう。
sample23.c
ーsample23の実行画面その1ー
整数を入力してください。
1
1が入力されました。
1を選択します。
処理を終了します。
ユーザーが1を入力した場合、
条件が真となり、
ブロック内の処理が実行されます。
もし、1以外を入力した場合は以下のようになります。
ーsample23の実行画面その2ー
整数を入力してください。
2
処理を終了します。
ブロック内の処理が行われていないことが確認できます。
ブロックにしない場合どうなるのか
sample23をブロックを使わないで記述したものが、
以下のsample24のコードになります。
sample24.c
ーsample24の実行画面ー
整数を入力してください。
2
1を選択します。
処理を終了します。
実行画面を見てみると、期待していない結果になってしまっています。
複数の文を処理させる予定が、{ }で囲み忘れてしまい、
if文の内容は11行目だけだと、判定されてしまっています。
このようなミスを防ぐために、
if文を使う際には1文でも{ }でブロックを作成したり、
インデントをすることで、
どこまでがif文の内容なのかわかりやすいような、
コードを記述することを心かけるべきです。
if 〜 else文の仕組みについて
今までは条件が真の場合のみ、
処理を実行してきました。
今回は条件が偽の場合にも、
指定した文を処理させる構文を学んでいきます。
ーif 〜 else文ー
if(条件)
文①;
else
文②;
この構文では条件が真の場合、
文①を処理し、
条件が偽の場合には、
文②を処理します。
実際にコードを入力します。
sample25.c
ーsample25の実行画面その1ー
整数を入力してください。
1
1が入力されました。
ーsample25の実行画面その2ー
整数を入力してください。
2
1以外が入力されました。
条件が偽の場合には、
elseブロック内に記述した処理が実行されています。
if 〜 else if 〜 elseの仕組みについて
if文では、2つ以上の条件を判断させて処理させることも可能です。
それが、
if 〜 else if 〜 else
になります。
この構文を使うことで、
2つ以上の条件に応じた処理を行うことができます。
else ifの条件はいくつでも指定することができます。
最後のelse文を省略することもでき、
どの条件にも当てはまらなかった場合には、
構文で実行される文は存在しないということになります。
実際にコードを入力します。
sample26.c
ーsample26の実行画面その1ー
整数を入力してください。
1
1が入力されました。
ーsample26の実行画面その2ー
整数を入力してください。
2
2が入力されました。
ーsample26の実行画面その3ー
整数を入力してください。
3
1か2を入力してください。
このように、いくつもの条件を判断して
複雑な処理を行うことができます。
例えば点数によってランクをつける際なんかには、
このようにして書くことで点数を入力するだけで、
その点数に応じたランクを表示することができます。
次回はswitch文というものから書いていきます。
〜END〜