前章ではif文を使い、条件に応じて特定の処理の実行を制御する方法を説明しました。
しかし、この方法は、処理を実行するかどうかの選択しかありません。
前章の始めに、金がある->焼肉定食、金がない->ざるソバ、という例を書きましたが、
前章の方法は、金がある->食べる、金がない->何もしない、だったのです。
条件に一致した時だけでなく、条件に一致しなかった時にも文を実行させたい場合、
if文と一緒に、else(エルス)文を使用することが出来ます。
else文は、次のようにして使用します。
else文の次の文は、条件が偽であった場合に実行されます。if (条件式) 真の場合に実行する文; else 負の場合に実行する文 ;
else文をつけた場合でも、if文の使い方自体は全く同じです。
ただ、偽の場合に実行する文がオプションとしてつけられただけです。
次のプログラムは、前章で作成したプログラムを、else文で書き直した例です。
このプログラムを実行させて10を入力した場合の結果は、次の通りになります。#include <stdio.h> int main(void) { int suuti; scanf("%d",&suuti); if (suuti == 10) printf("入力値は10です。\n"); else printf("入力値は10ではありません。\n"); return 0; }
このプログラムを実行させて10以外を入力した場合の結果は、次の通りになります。
10 入力したデータ
入力値は10です。
結果を見ればわかるように、偽の場合には2番目の文が実行されています。
135 入力したデータ
入力値は10ではありません。
if〜else文を読みやすく書くには、複数の行に分け、インデントを追加します。
具体的には、次のような書き方をすると見やすくなります。
また、if〜else文で複文を使う場合には、次のように書きます。#include <stdio.h> int main(void) { if (suuti == 10) printf("入力値は10です。\n"); else printf("入力値は10ではありません。\n"); }
この書き方を使うと、if文とelse文との対応関係が一目でわかり、#include <stdio.h> int main(void) { if (suuti == 10) { printf("入力値は10です。\n"); } else { printf("入力値は10ではありません。\n"); } }
#include <stdio.h> int main(void) { if (suuti == 10) { printf("入力値は10です。\n"); } else { printf("入力値は10ではありません。\n"); } }