if、else if、else を使用してコード フローを制御する
Tip
詳細については、「 テキストと画像 」タブを参照してください。
1 つの if ステートメントで処理できる結果は 1 つだけです。 代替の結果を処理するために、C# には else キーワードと else if キーワードが用意されています。
else を使用して代替パスを追加する
条件がfalseされたときに、elseを使用して別のコード ブロックを実行します。
int total = 12;
if (total >= 15)
{
Console.WriteLine("You win!");
}
else
{
Console.WriteLine("Sorry, you lose.");
}
条件を他の条件と連結する場合
可能性のある結果が 2 つ以上ある場合は、 else if ブロックを追加して、追加の条件を確認します。
int total = 12;
if (total >= 16)
{
Console.WriteLine("You win a new car!");
}
else if (total >= 10)
{
Console.WriteLine("You win a new laptop!");
}
else if (total == 7)
{
Console.WriteLine("You win a trip for two!");
}
else
{
Console.WriteLine("You win a kitten!");
}
最初の試合が勝つ
C# は各条件を順番にチェックし、条件が trueされた最初のブロックを実行します。 そうでなければ複数の条件が true になる場合でも、それ以降の条件はすべてスキップされます。 条件が一致しない場合、 else ブロックが実行されます。
elseは省略可能ですが、含める場合は最後に来る必要があります。
上記の例では total が 12 されているため、出力は次のようになります。
You win a new laptop!
想定した結果を誤ってスキップしないように、条件は最も具体的なものから最も具体的でないものの順に並べてください。
if ステートメントの入れ子
ifステートメントは、別のif ステートメントのコード ブロック内に配置できます。 これは 入れ子と呼ばれ、ある決定が別の決定に依存する場合に便利です。
bool hasTicket = true;
int age = 16;
if (hasTicket)
{
if (age >= 18)
{
Console.WriteLine("Entry granted.");
}
else
{
Console.WriteLine("Minors must be accompanied by an adult.");
}
}