C# while と do...while ループ
C# while と do...while ループ
この記事では、C# の while と do...while ループ、それらの使用方法、およびそれらの違いについて学習します。
プログラミングでは、多くの場合、特定のステートメント ブロックを指定された回数だけ実行する必要があります。可能な解決策は、これらのステートメントを必要な回数入力することです。ただし、繰り返しの回数は (コンパイル時に) 事前にわからない場合や、十分な数 (たとえば 10000) である場合があります。
このような問題の最善の解決策はループです。ループはプログラミングで使用され、条件が満たされるまで特定のステートメント ブロックを繰り返し実行します。
この記事では、C# で while ループを使用する方法を学習します。
C# while ループ
ながら キーワードは、C# で while ループを作成するために使用されます。 while ループの構文は次のとおりです。
while (test-expression) { // body of while }
while ループのしくみ
<オール>test-expression
で構成されています .test-expression
の場合 true
に評価されます 、 <オール> test-expression
再評価されます。test-expression
の場合 false
に評価されます 、while ループが終了します。while ループのフローチャート
<図>例 1:while ループ
using System;
namespace Loop
{
class WhileLoop
{
public static void Main(string[] args)
{
int i=1;
while (i<=5)
{
Console.WriteLine("C# For Loop: Iteration {0}", i);
i++;
}
}
}
}
プログラムを実行すると、出力は次のようになります:
C# For Loop: Iteration 1 C# For Loop: Iteration 2 C# For Loop: Iteration 3 C# For Loop: Iteration 4 C# For Loop: Iteration 5
i の初期値 は 1 です。
プログラムが while ループ文に到達すると、
- テスト式
i <=5
評価されます。 私以来 は 1 で1 <= 5
true
です 、while ループの本体を実行します。ここでは、反復 1 で行が画面に出力され、i の値が が 1 増加して 2 になります。 - さて、テスト式 (
i <=5
) が再度評価されます。今回も式はtrue
を返します (2 <=5) であるため、行が画面に出力され、i の値が は現在 3 に増分されています.. - これが続き、i まで while ループが実行されます 6 になります。この時点で、テスト式は
false
と評価されます。 したがって、ループは終了します。
例 2:最初の 5 つの自然数の合計を計算する while ループ
using System;
namespace Loop
{
class WhileLoop
{
public static void Main(string[] args)
{
int i=1, sum=0;
while (i<=5)
{
sum += i;
i++;
}
Console.WriteLine("Sum = {0}", sum);
}
}
}
プログラムを実行すると、出力は次のようになります:
Sum = 15
このプログラムは、最初の 5 つの自然数の合計を計算します。
- 最初は sum の値 0 に初期化されます。
- 反復ごとに、sum の値
sum+i
に更新されます と i の値 1ずつ増加します。 - i の値が 6 に達すると、テスト式
i<=5
false を返し、ループが終了します。
各反復で与えられたプログラムで何が起こるか見てみましょう。
最初は 私 =1、合計 =0
反復 | i の値 | i<=5 | 合計値 |
---|---|---|---|
1 | 1 | 真 | 0+1 =1 |
2 | 2 | 真 | 1+2 =3 |
3 | 3 | 真 | 3+3 =6 |
4 | 4 | 真 | 6+4 =10 |
5 | 5 | 真 | 10+5 =15 |
6 | 6 | 偽 | ループ終了 |
したがって、sum の最終値は 15歳になります。
C# do...while ループ
すべきこと そしてその間 キーワードは、do...while ループを作成するために使用されます。 while ループに似ていますが、両者には大きな違いがあります。
while ループでは、本体が実行される前に条件がチェックされます。 do...while ループでは正反対です。つまり、本体の実行後に条件がチェックされます。
これが、テスト式に関係なく、do...while ループの本体が少なくとも 1 回実行される理由です。
do...while ループの構文は次のとおりです。
do { // body of do while loop } while (test-expression);
while ループはどのように機能しますか?
<オール>test-expression
評価されます。test-expression
の場合 true
です 、ループの本体が実行されます。test-expression
false
です , do...while ループが終了します。do...while ループのフローチャート
<図>例 3:do...while ループ
using System;
namespace Loop
{
class DoWhileLoop
{
public static void Main(string[] args)
{
int i = 1, n = 5, product;
do
{
product = n * i;
Console.WriteLine("{0} * {1} = {2}", n, i, product);
i++;
} while (i <= 10);
}
}
}
プログラムを実行すると、出力は次のようになります:
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 5 * 10 = 50
ご覧のとおり、上記のプログラムは数値 (5) の乗算表を出力します。
- 最初に、i の値 は 1 です。プログラムは、(while ループとは対照的に) 条件をチェックせずに do..while ループの本体に入ります。
- 体内、製品 計算されて画面に表示されます。 i の値 その後、2 にインクリメントされます。
- ループ本体の実行後、テスト式
i <= 10
評価されます。合計で、do...while ループは 10 回実行されます。 - 最後に、i の値が 11 の場合、テスト式は
false
と評価されます したがって、ループを終了します。
無限 while と do...while ループ
while および do...while ループのテスト式が false
に評価されない場合 、ループの本体は永遠に実行されます。このようなループは無限ループと呼ばれます。
例:
無限 while ループ
while (true) { // body of while loop }
無限 do...while ループ
do { // body of while loop } while (true);
無限ループは、プログラムが実行されている限りループを実行する必要がある場合に便利です。
たとえば、プログラムがアニメーションの場合、停止するまで常に実行する必要があります。このような場合、アニメーションを繰り返し実行し続けるには、無限ループが必要です。
C言語