MMGamesロゴ  MMGames
Twitterシェアボタン  Facebookシェアボタン   
 English 

しんで覚えるC言語
しんで覚えるC言語

2つの場合分け

偽の場合の処理
前章ではif文を使い、条件に応じて特定の処理の実行を制御する方法を説明しました。
しかし、この方法は、処理を実行するかどうかの選択しかありませんでした。

前章の始めに

ランチの判断
お金に余裕がある ならば 焼肉定食
お金に余裕がない ならば 素うどん

という例を書きましたが、

実際に前章で説明した方法では

ランチの判断
お金に余裕がある ならば 食べる
お金に余裕がない ならば 食べない

という、する あるいは しない という判断しかできていなかったのです。

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

else文
if (条件式) 真の場合に実行する文; else 偽の場合に実行する文 ;

else文の次の文は、条件が偽であった場合に実行されます。
真の場合に実行する文と偽の場合に実行する文が両方実行されることはありえません。
条件に応じて、必ず、どちらか片方のみが実行されます。
使い方は同じ
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番目の文が実行されています。
読みやすくする

前節で説明したように、else文を使用すれば、条件に一致しない場合の処理を実行できます。
しかし、 前節のプログラムを見ればわかるように、else文を後ろに追加したため、
1行が横にかなり長くなってしまい、プログラムが読みにくくなってしまっています。

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;
}

また、次のような書き方をすることで、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;
}


この書き方を使うと、if文とelse文との対応関係が一目でわかり、
非常に見やすくなるので、普段からこの書き方を使用することをオススメします。

なお、次のように、else文で改行する流儀の書き方も広く使われています。
筆者は、縦に短いという理由から、前者を好みますが、どちらの書き方でも問題はありません。

ソースコード
#include <stdio.h>

int main(void)
{
    int suuti;
    scanf("%d", &suuti);

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

    return 0;
}



本サイトについて

苦しんで覚えるC言語(苦C)は
C言語入門サイトの決定版です。
C言語の基本機能を体系立てて解説しており、
市販書籍と同等以上の完成度です。

第0部:プログラム概要編
  1. プログラムとは何か?
2章:プログラムの書き方
  1. 書き方のルール
  2. 書き方の慣習
  3. 練習問題2
3章:画面への表示
  1. 文字列の表示
  2. 改行文字
  3. 練習問題3
6章:キーボードからの入力
  1. 入力用の関数
  2. 入力の恐怖
  3. 練習問題6
9章:回数が決まっている繰り返し
  1. 繰り返しを行う文
  2. ループ動作の仕組み
  3. 練習問題9
10章:回数がわからない繰り返し
  1. 回数不明ループ
  2. 入力チェック
  3. 練習問題10
13章:複数の変数を一括して扱う
  1. 複数の変数をまとめて扱う
  2. 配列の使い方
  3. 練習問題13
20章:複数のソースファイル
  1. 最小限の分割
  2. 分割の定石
  3. 練習問題20

コメント
COMMENT

💬 コメント投稿欄を開く