C# の IF、Switch、For、While ループ文 [例]

⚡ スマートサマリー

C#の条件文とループは、論理に基づいてコードブロックを実行または繰り返すことで、プログラムの実行フローを制御します。if、switch、while、for文を使用することで、プログラムは効率的に判断を下し、反復処理を行うことができます。

  • 🔀 フロー制御: 条件文は実行順序を変更し、プログラムがその論理に一致する文のみを実行するようにします。
  • if文: if文はブール式を評価し、それが真の場合にはあるブロックを実行し、偽の場合には別のブロックを実行します。
  • 🔢 switch文: switch文は、1つの値を複数のcaseラベルと比較し、一致する値が見つかった時点でbreakを使用して処理を停止します。
  • 🔁 whileループ: whileループは、条件が真である限り、一連のステートメントを繰り返します。これは、繰り返し回数が不明な場合に適しています。
  • 🔄 forループ: forループは、カウンタの初期化、テスト、およびインクリメントを1行で実行します。繰り返し回数が既知の場合に最適です。
  • 🤖 AI支援: GitHub Copilotはif文、switch文、ループのロジックをドラフトし、ML.NETは同じ条件を再利用して機械学習パイプラインを分岐させます。

C# 条件文

フロー制御と条件文

フロー制御および条件ステートメントは、プログラムのフローを変更するために任意のプログラミング言語で使用できます。

例えば、特定のロジックに基づいて特定の一連のステートメントのみを実行したい場合、フロー制御と条件分岐が役立ちます。

C# で使用できるさまざまなステートメントを確認することで、より深く理解できるようになります。

以下のコードはすべて Program.cs ファイルに対して作成されていることに注意してください。

1) if ステートメント

if文は、一連のステートメントを実行する前にブール式を評価するために使用されます。式が真と評価された場合は、ある一連のステートメントが実行され、そうでない場合は別の一連のステートメントが実行されます。

以下の例では、valueという変数に対して比較が行われています。変数の値が10未満であれば、あるステートメントが実行され、そうでなければ別のステートメントが実行されます。

Ifステートメント

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program 
 {
  static void Main(string[] args) 
  {
   Int32 value = 11;
   
   if(value<10)
   {
    Console.WriteLine("Value is less than 10");
   }
   else
   {
    Console.WriteLine("Value is greater than 10");
   }
    Console.ReadKey();
  }
 }
}

Code 説明:-

  1. まず、value という変数を定義し、値 11 に設定します。
  2. 次に、「if」ステートメントを使用して、値が変数の 10 未満かどうかを確認します。 結果は true または false のいずれかになります。
  3. if 条件が true と評価されると、「値は 10 未満です」というメッセージがコンソールに送信されます。
  4. if 条件が false と評価された場合は、「値が 10 より大きい」というメッセージがコンソールに送信されます。

上記のコードが正しく入力され、プログラムが正常に実行されると、次の出力が表示されます。

出力:

Ifステートメント

「if」ステートメントが false と評価されたことが明確にわかります。 したがって、「値は 10 を超えています」というメッセージがコンソールに送信されました。

2) switch ステートメント

switch ステートメントは、「if」ステートメントの拡張機能です。 一度に評価する必要がある式が複数ある場合、複数の「if」ステートメントを記述することが問題になります。

switch ステートメントは、式を評価し、式の結果に基づいてさまざまなステートメントを実行するために使用されます。 XNUMX つの条件が true と評価されない場合、switch ステートメントは次の条件に進みます。

以下の例で、これがどのように機能するかを見てみましょう。ここでも、「value」という変数の値を比較しています。そして、その値が1、2、または全く異なる値であるかどうかを確認します。

スイッチステートメント

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   Int32 value=11;
   switch(value) 
   {
     case 1: Console.WriteLine("Value is 1");	
     break;
     case 2: Console.WriteLine("Value is 2");
     break;
     default: Console.WriteLine("value is different");
     break;
   }
  }
 }
}

Code 説明:-

  1. まず、「value」という変数を定義し、値 11 に設定します。
  2. 次に、「switch」ステートメントを使用して、変数「value」の値を確認します。
  3. Case ステートメントは、さまざまな条件を設定するために使用されます。 条件に基づいて、一連のステートメントを実行できます。 switch ステートメントには複数の case 条件を含めることができます。 最初の case ステートメントは、変数の値が 1 に等しいかどうかを確認します。
  4. 最初の case ステートメントが true の場合、「値は 1」というメッセージがコンソールに書き込まれます。
  5. Break ステートメントは、条件が true になったときに switch ステートメント全体から中断するために使用されます。
  6. デフォルトの条件は特殊な条件です。 これは、どの case 式も true と評価されない場合、デフォルト条件に対して一連のステートメントを実行することを意味します。

上記のコードが正しく入力され、プログラムが正常に実行されると、次の出力が表示されます。条件が満たされていないため、出力にはデフォルト値「値が異なります」が印刷されます。

出力:

スイッチステートメント

3) While ループ

while ループは反復目的に使用されます。 特定の一連のステートメントを特定の回数繰り返す場合は、while ループが使用されるとします。

以下の例では、while ステートメントを使用して変数「i」の値を表示します。 while ステートメントは、値を 3 回表示するために使用されます。

ループ

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   Int32 value=3,i=0;
   
   while(i<value)
   {
    Console.WriteLine(i);
    i=i+1;
   }
    Console.ReadKey(); 
  }
 }
}

Code 説明:-

  1. XNUMX つの整数 variables が定義されており、XNUMX つは value で、もう XNUMX つは 'i' です。 value 変数は、while ステートメントを反復する上限として使用されます。 「i」は反復中に処理される変数です。
  2. while ステートメントでは、「i」の値が常に上限と比較してチェックされます。
  3. ここでは、「i」の値をコンソールに表示します。 「i」の値もインクリメントします。

上記のコードが正しく入力され、プログラムが正常に実行されると、次の出力が表示されます。

出力:

ループ

ここでは、while ステートメントが 3 回実行され、同時に増分されていることがわかります。また、そのたびに、変数 'i' の現在の値が表示されています。

4) forループ

forループは反復処理にも使用されます。例えば、特定の一連のステートメントを特定の回数繰り返したい場合などにforループを使用します。

以下の例では、「for」ステートメントを使用して変数「i」の値を表示します。 「for」ステートメントは、値を 3 回表示するために使用されます。

ループの場合

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   for(Int32 i=0;i<3;i++)
   {
    Console.WriteLine(i);
   }
    Console.ReadKey(); 
  
  }
 }
}

Code 説明:-

  1. 「for」キーワードは、「for ループ」ステートメントを開始するために使用されます。
  2. 「for ループ」では 3 つのことを定義します。 XNUMX つ目は、「for ループ」で使用される変数の値を初期化することです。
  3. 3 つ目は、「i」の値を上限と比較することです。 この場合、上限は値 3 (i<XNUMX) です。
  4. 最後に、それに応じて「i」の値をインクリメントします。
  5. ここでは、「i」の値をコンソールに表示します。

上記のコードが正しく入力され、プログラムが正常に実行されると、次の出力が表示されます。

出力:

ループの場合

ここでは、「for」ステートメントが 3 回実行されていることがわかります。そして、そのたびに、変数「i」の現在の値が表示されています。

よくあるご質問

if文は範囲や複雑なブール条件を扱うのに対し、switch文は1つの値を複数の固定ケースラベルと比較します。switch文は多数の離散値を扱う場合に簡潔ですが、if-else文は範囲、複数の変数、論理演算子を扱う場合に適しています。

ネストされたif文は、あるif文の中に別のif文を配置することで、外側の条件が真の場合にのみ内側の条件がテストされるようにします。これにより、プログラムは複数の依存条件をチェックできますが、ネストが深くなると可読性が低下します。

whileループは各イテレーションの前に条件をテストするため、実行回数がゼロになる場合があります。一方、do-whileループは本体の後に条件をテストするため、必ず少なくとも1回は実行されます。これはメニューや入力値の検証に適しています。

break文はループまたはswitch文を即座に終了させますが、continue文は現在のイテレーションの残りをスキップして次のイテレーションに進みます。どちらも処理の流れを変更しますが、ループを完全に終了させるのはbreak文だけです。

三項演算子 ?: は、if-else 文を簡潔に表現したものです。条件を評価し、条件が真の場合は最初の値を、偽の場合は2番目の値を返して、簡潔な1行の代入文を作成します。

foreachループは、配列やリストなどのコレクションのすべての要素を、インデックスやカウンターを必要とせずに反復処理します。コレクションを安全に読み取り、一般的なオフバイワンエラーや範囲外エラーを防ぎます。

はい。GitHub Copilot は、Visual Studio 内のコメントまたはメソッド名から if、switch、while、for ブロックを提案します。 VS Code. RevCopilotはオフバイワンエラーを引き起こす可能性があるため、正しい条件とループ境界に関する各提案を確認してください。

ML.NET パイプラインは、C# の条件文を使用して特徴量の値に基づいて分岐し、ループを使用してトレーニング行を反復処理します。同じ if、switch、for ロジックを使用してデータを準備し、予測をルーティングし、ping 型が厳密に定義された機械学習ワークフロー。