コンテンツへスキップ

【C# の基本】レッスン4:③ else if 文と多分岐


概要

ここでは、else if 文について学習します。else if 文の基本的な構文は以下の通りです。

if( 条件式 A )
{
    // 処理 A
}
else if( 条件式 B )
{
    // 処理 B
}
else
{
    // 処理 C
}

処理の流れは下図のようになります。条件式 A を満たせば、処理 A が実行されます。満たさない場合は、条件式 B を満たすかどうか判別し、処理 B か 処理 C のどちらかが実行されます。

lesson4-3-1

STEP1:C# プログラム(ファイル)を追加する

こちらの記事を参考にして、コンソールアプリ(プロジェクト名:Lesson4)に C# プログラム(ファイル名:Lesson4_3)を追加します。

STEP2:プログラムを記述する

Lesson4_2.cs の switch 文を if 文に書き換えてみます。

namespace Lesson4
{
    public static class Lesson4_3
    {
        public static void Text1()
        {
            int saikoro = 3;
            if (saikoro == 1)
            {
                Console.WriteLine("サイコロの目は 1 です。");
            }
            else if (saikoro == 2)
            {
                Console.WriteLine("サイコロの目は 2 です。");
            }
            else if (saikoro == 3)
            {
                Console.WriteLine("サイコロの目は 3 です。");
            }
            else {
                Console.WriteLine("サイコロの目は 1, 2, 3 以外です。");
            }
        }
    }
}

STEP3:動作を確認する

else if 文の動作を確認できたでしょうか。処理を振り分けが値のとき(例:上記のサイコロのプログラム)は、 switch 文のほうが簡単そうですね。振り分けの条件が式の場合は、else if 文が活躍しそうです。次の課題で確かめてみましょう。

課題① – 1:else if 文の使いどころ

if 文の処理の振り分けには条件式が使えます。そのため、switch 文では表現できない多分岐が、else if 文で表現可能な場面があります。次のプログラムは if 文だからこそ書ける多分岐のプログラムです(※)。

/// <summary>
/// 課題(1). else if 文の使いどころ
/// </summary>
public static void Kadai1()
{
    int saikoro = 3;
    if(saikoro < 3)
    {
        Console.WriteLine("サイコロの目は 3 よりも小さいです。");
    }
    if (saikoro == 3)
    {
        Console.WriteLine("サイコロの目は 3 です。");
    }
    else
    {
        Console.WriteLine("サイコロの目は 3 よりも大きいです。");
    }
}

(※)C# 7.0 から、switch 文でも条件式が表現できるようになりました。case の後 when を記述します。

次に進む

次は、論理演算子について学びます。