C#の条件分岐(if, switch)完全ガイド

先生

C#の条件分岐、もう迷わない!if文、switch文、三項演算子を徹底解説します。

C#の条件分岐:if文の基本

C#における条件分岐の基本はif文です。if文を使うことで、特定の条件が真(true)の場合にのみ、指定されたコードブロックを実行できます。条件分岐は、プログラムに柔軟性を持たせ、様々な状況に対応させるために不可欠な要素です。

if (条件式)
{
    // 条件式が真の場合に実行されるコード
}

条件式は、bool型の値を返す必要があります。比較演算子(==, !=, <, >, <=, >=)や論理演算子(&&, ||, !)を組み合わせて、複雑な条件を記述することも可能です。

int x = 10;
if (x > 5)
{
    Console.WriteLine("xは5より大きい");
}

else文を使うと、if文の条件が偽(false)の場合に実行されるコードブロックを指定できます。

int x = 3;
if (x > 5)
{
    Console.WriteLine("xは5より大きい");
}
else
{
    Console.WriteLine("xは5以下です");
}

else if文を使うと、複数の条件を順番に評価し、最初に真となる条件に対応するコードブロックを実行できます。

int x = 7;
if (x > 10)
{
    Console.WriteLine("xは10より大きい");
}
else if (x > 5)
{
    Console.WriteLine("xは5より大きく、10以下です");
}
else
{
    Console.WriteLine("xは5以下です");
}

C#の条件分岐:switch文の使い方

switch文は、変数の値に基づいて複数の異なるコードブロックの中から一つを選択して実行する際に便利です。if-else if文の連鎖をより簡潔に記述できます。

switch (変数)
{
    case 値1:
        // 変数が値1と等しい場合に実行されるコード
        break;
    case 値2:
        // 変数が値2と等しい場合に実行されるコード
        break;
    default:
        // 変数がどの値とも一致しない場合に実行されるコード
        break;
}

caseラベルには、定数式(コンパイル時に値が確定する式)を指定する必要があります。breakステートメントは、該当するcaseのコードブロックの実行を終了し、switch文から抜け出すために使用します。defaultラベルは、どのcaseにも一致しない場合に実行されるコードブロックを指定します。

string color = "red";
switch (color)
{
    case "red":
        Console.WriteLine("赤色です");
        break;
    case "blue":
        Console.WriteLine("青色です
");
        break;
    default:
        Console.WriteLine("その他の色です");
        break;
}

C# 7.0以降では、switch文でパターンマッチングを使用することも可能です。これにより、型のチェックや、より複雑な条件に基づいた分岐が可能になります。

if文とswitch文の使い分け

if文とswitch文は、どちらも条件分岐を制御するための構文ですが、それぞれに適した場面があります。

if文は、条件が複雑な場合や、変数の範囲に基づいた条件分岐を行う場合に適しています。また、bool型の条件式を直接評価できるため、柔軟な条件分岐が可能です。

switch文は、変数の値が複数の定数と比較される場合に適しています。特に、変数の型が整数型や文字列型の場合に、コードをより簡潔に記述できます。ただし、switch文では、条件式が定数式でなければならないという制約があります。

一般的に、条件が複雑で、変数の範囲や型に基づいた条件分岐が必要な場合はif文を、変数の値が複数の定数と比較される場合はswitch文を使用すると良いでしょう。

C#の条件演算子(三項演算子)

C#には、条件演算子と呼ばれる三項演算子 ?: があります。これは、if-else文を簡潔に記述するためのものです。

条件式 ? 式1 : 式2

条件式が真の場合、式1が評価され、その結果が返されます。条件式が偽の場合、式2が評価され、その結果が返されます。

int x = 10;
int y = (x > 5) ? 20 : 30; // x > 5 が真なので、yには20が代入される
Console.WriteLine(y); // 出力:20

参考リンク

まとめ

C#における条件分岐は、if文、switch文、そして条件演算子によって実現されます。これらの構文を理解し、適切に使い分けることで、より柔軟で効率的なプログラムを作成できます。条件分岐は、プログラミングの基礎となる重要な概念ですので、しっかりと理解しておきましょう。