C# if, if...else, if...else if およびネストされた if ステートメント
C# の if, if...else, if...else if およびネストされた if ステートメント
この記事では、C# で if、if...else、if...else if ステートメントを使用して、プログラムの実行の流れを制御する方法を学習します。
条件のテストは、プログラミングでは避けられません。条件をテストする必要がある状況に直面することがよくあります (true
かどうか)。 または false
) プログラムの流れを制御します。これらの条件は、ユーザーの入力、時間要因、プログラムが実行されている現在の環境などの影響を受ける場合があります。
この記事では、C# で if ステートメントを使用して条件をテストする方法を学びます。
C# if (if-then) ステートメント
C# の if-then ステートメントは、指定された条件が true の場合にコード ブロックを実行します。 C# の if-then ステートメントの構文は次のとおりです。
if (boolean-expression) { // statements executed if boolean-expression is true }
- boolean-expression は true のいずれかを返します または
false
. - ブール式が
true
を返す場合 、 if ({...}
内の本体内のステートメント ) が実行されます。 - ブール式が
false
を返す場合 、if の本体内のステートメントは無視されます。
たとえば、
if (number < 5) { number += 5; }
この例では、ステートメント
number += 5;
number の値が 5 未満の場合にのみ実行されます。
+=演算子を覚えていますか?
if ステートメントはどのように機能しますか?
<図>例 1:C# if ステートメント
using System;
namespace Conditional
{
class IfStatement
{
public static void Main(string[] args)
{
int number = 2;
if (number < 5)
{
Console.WriteLine("{0} is less than 5", number);
}
Console.WriteLine("This statement is always executed.");
}
}
}
プログラムを実行すると、出力は次のようになります:
2 is less than 5 This statement is always executed.
number の値 2 に初期化されます。したがって、式 number < 5
true
に評価されます .したがって、if ブロック内のコードが実行されます。 if ステートメントの後のコードは、式に関係なく常に実行されます。
ここで、number の値を変更します 5
より大きいものに 、 10
と言います .プログラムを実行すると、出力は次のようになります:
This statement is always executed.
式 number < 5
false
を返します 、したがって if ブロック内のコードは実行されません。
C# if...else (if-then-else) ステートメント
C# の if ステートメントには、オプションの else ステートメントがある場合があります。式が false
と評価された場合、else ステートメント内のコード ブロックが実行されます。 .
C# の if...else ステートメントの構文は次のとおりです。
if (boolean-expression) { // statements executed if boolean-expression is true } else { // statements executed if boolean-expression is false }
たとえば、
if (number < 5) { number += 5; } else { number -= 5; }
この例では、ステートメント
number += 5;
number の値が 5
未満です .
声明
number -= 5;
number の値が 5
以上の場合に実行されます .
if...else ステートメントの仕組み
<図>例 2:C# の if...else ステートメント
using System;
namespace Conditional
{
class IfElseStatement
{
public static void Main(string[] args)
{
int number = 12;
if (number < 5)
{
Console.WriteLine("{0} is less than 5", number);
}
else
{
Console.WriteLine("{0} is greater than or equal to 5", number);
}
Console.WriteLine("This statement is always executed.");
}
}
}
プログラムを実行すると、出力は次のようになります:
12 is greater than or equal to 5 This statement is always executed.
ここで、number の値 12
に初期化されます .したがって、式 number < 5
false
に評価されます .したがって、else ブロック内のコードが実行されます。 if..else ステートメントの後のコードは、式に関係なく常に実行されます。
ここで、数値の値を 5
未満に変更します 、 2
と言ってください .プログラムを実行すると、出力は次のようになります:
2 is less than 5 This statement is always executed.
式 number < 5
true を返すため、if ブロック内のコードが実行されます。
C# の三項演算子は、C# if...else ステートメントのショートカットを提供します。
C# if...else if (if-then-else if) ステートメント
テストする条件が 1 つしかない場合、if-then および if-then-else ステートメントは正常に機能します。しかし、多数のコード ブロックの 1 つをテストして実行する複数の条件がある場合はどうなるでしょうか。
このような場合、C# の if..else if ステートメントを使用できます。 if...else if ステートメントの構文は次のとおりです:
if (boolean-expression-1) { // statements executed if boolean-expression-1 is true } else if (boolean-expression-2) { // statements executed if boolean-expression-2 is true } else if (boolean-expression-3) { // statements executed if boolean-expression-3 is true } . . . else { // statements executed if all above expressions are false }
if...else if ステートメントは 先頭 から実行されます 下へ .テスト式が true
になるとすぐに 、その if (または else if ) ブロック内のコードが実行されます。その後、コントロールは if...else if ブロックから飛び出します。
true
の式がない場合 、else ブロック内のコードが実行されます。
または、そのような条件で switch ステートメントを使用することもできます。
例 3:C# の if...else if ステートメント
using System;
namespace Conditional
{
class IfElseIfStatement
{
public static void Main(string[] args)
{
int number = 12;
if (number < 5)
{
Console.WriteLine("{0} is less than 5", number);
}
else if (number > 5)
{
Console.WriteLine("{0} is greater than 5", number);
}
else
{
Console.WriteLine("{0} is equal to 5");
}
}
}
}
プログラムを実行すると、出力は次のようになります:
12 is greater than 5
number の値は 12
に初期化されます .最初のテスト式 number < 5
false
です 、そのため、コントロールは else if ブロックに移動します。テスト式 number > 5
true
です したがって、else if 内のコード ブロックが実行されます。
同様に、 number
の値を変更できます 実行の流れを変更します。
ネストされた if...else ステートメント
if...else ステートメントは、別の if...else ステートメント内に存在できます。このようなステートメントは、ネストされた if...else ステートメントと呼ばれます。
ネストされた if…else ステートメントの一般的な構造は次のとおりです:
if (boolean-expression) { if (nested-expression-1) { // code to be executed } else { // code to be executed } } else { if (nested-expression-2) { // code to be executed } else { // code to be executed } }
ネストされた if ステートメントは、通常、ある条件の後に別の条件をテストする必要がある場合に使用されます。ネストされた if ステートメントでは、外側の if ステートメントが true を返す場合、本体に入り、内側の if ステートメントをチェックします。
例 4:ネストされた if...else ステートメント
次のプログラムは、ネストされた if...else ステートメントを使用して、3 つの数値の中で最大の数値を計算します。
using System;
namespace Conditional
{
class Nested
{
public static void Main(string[] args)
{
int first = 7, second = -23, third = 13;
if (first > second)
{
if (firstNumber > third)
{
Console.WriteLine("{0} is the largest", first);
}
else
{
Console.WriteLine("{0} is the largest", third);
}
}
else
{
if (second > third)
{
Console.WriteLine("{0} is the largest", second);
}
else
{
Console.WriteLine("{0} is the largest", third);
}
}
}
}
}
プログラムを実行すると、出力は次のようになります:
13 is the largest
C言語