<戻る  目次  進む>  
          <戻 進> 雑誌 白黒 明暗   フォント 既定 ゴシック 明朝 手書き   サイズ   標準  


   2つの場合分け   

  1. 第1項:偽の場合の処理
  2. 第2項:使い方は同じ
  3. 第3項:読みやすくする

[1]偽の場合の処理

前章ではif文を使い、条件に応じて特定の処理の実行を制御する方法を説明しました。
しかし、この方法は、処理を実行するかどうかの選択しかありません。
前章の始めに、金がある->焼肉定食、金がない->ざるソバ、という例を書きましたが、
前章の方法は、金がある->食べる、金がない->何もしない、だったのです。

条件に一致した時だけでなく、条件に一致しなかった時にも文を実行させたい場合、
if文と一緒に、else(エルス)文を使用することが出来ます。
else文は、次のようにして使用します。


if (条件式) 真の場合に実行する文; else 偽の場合に実行する文 ;
else文の次の文は、条件が偽であった場合に実行されます。
真の場合に実行する文と偽の場合に実行する文が両方実行されることはありえません。
条件に応じて、必ず、どちらか片方のみが実行されます。

目次に戻る


[2]使い方は同じ

else文をつけた場合でも、if文の使い方自体は全く同じです。
ただ、偽の場合に実行する文がオプションとしてつけられただけです。
次のプログラムは、前章で作成したプログラムを、else文で書き直した例です。

#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です。
このプログラムを実行させて10以外を入力した場合の結果は、次の通りになります。

135 入力したデータ
入力値は10ではありません。
結果を見ればわかるように、偽の場合には2番目の文が実行されています。
しかし、このプログラムでは、if〜else文を1行に書いているため、
1行が横に長くなってしまい、読みにくくなっています。

目次に戻る


[3]読みやすくする

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");
	}
}
この書き方を使うと、if文とelse文との対応関係が一目でわかり、
非常に見やすくなるので、普段からこの書き方を使用することをお勧めします。
なお、これ以外にも、次のような書き方を使用する人も多くいるのですが、
無駄に長くなるような気がするので筆者はあまり好きではありません。

#include <stdio.h>

int main(void)
{

	if (suuti == 10)
	{
		printf("入力値は10です。\n"); 
	}
	else
	{
		printf("入力値は10ではありません。\n");
	}
}

目次に戻る


<−前に戻る  先頭に戻る  次へ進む−>