C# for ループ
C# for ループ
この記事では、C# の for ループと、プログラムでそれらを使用するさまざまな方法について学習します。
プログラミングでは、多くの場合、特定のステートメント ブロックを指定された回数だけ実行する必要があります。可能な解決策は、これらのステートメントを必要な回数入力することです。ただし、繰り返しの回数は (コンパイル時に) 事前にわからない場合や、十分な数 (たとえば 10000) である場合があります。
このような問題の最善の解決策はループです。ループはプログラミングで使用され、条件が満たされるまで特定のステートメント ブロックを繰り返し実行します。
この記事では、C# の for ループについて説明します。
C# for ループ
目的 キーワードは、C# で for ループを作成するために使用されます。 for ループの構文 です:
for (initialization; condition; iterator) { // body of for loop }
ループの仕組み
<オール>initialization
、 condition
と iterator
.initialization
ステートメントは最初に 1 回だけ実行されます。ここで、変数は通常、宣言および初期化されます。condition
評価されます。 condition
ブール式です。つまり、true
のいずれかを返します。 または false
.condition
の場合 true
に評価されます :<オール> iterator
通常、初期化された変数の値を変更するステートメントが実行されます。condition
評価されます。condition
まで続きます false
に評価されます .condition
の場合 false
に評価されます 、for ループが終了します。for ループ フローチャート
<図>例 1:C# for ループ
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
for (int i=1; i<=5; i++)
{
Console.WriteLine("C# For Loop: Iteration {0}", 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
このプログラムでは、
initialization
ステートメントはint i=1
ですcondition
ステートメントはi<=5
ですiterator
ステートメントはi++
です
プログラムが実行されると、
- まず、変数 i が宣言され、1 に初期化されます。
- 次に、条件 (
i<=5
) が評価されます。 - したがって、条件は
true
を返します の場合、プログラムは for ループの本体を実行します。指定された行を反復 1 で出力します (反復は単純に繰り返しを意味します)。 - イテレータ (
i++
) が評価されます。これにより i の値が増加します 2まで - 条件 (
i<=5
) が再度評価され、最後に i の値 は 1 ずつ増加します。条件はtrue
に評価されます 最初の 5 回。 - i の値が は 6 になり、条件は
false
になります。 、したがってループは終了します。
例 2:最初の n 個の自然数の合計を計算する for ループ
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
int n = 5,sum = 0;
for (int i=1; i<=n; i++)
{
// sum = sum + i;
sum += i;
}
Console.WriteLine("Sum of first {0} natural numbers = {1}", n, sum);
}
}
}
プログラムを実行すると、出力は次のようになります:
Sum of first 5 natural numbers = 15
ここで、sum の値 そしてn それぞれ 0 と 5 に初期化されます。反復変数 i 1 に初期化され、反復ごとにインクリメントされます。
for ループ内、sum の値 i だけインクリメントされます 例:sum = sum + i
. for ループは i まで続きます n 以下です (ユーザーの入力).
各反復で与えられたプログラムで何が起こるか見てみましょう。
最初は 私 =1、合計 =0 および n =3
反復 | 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 | 偽 | ループ終了 |
したがって、n =5 の場合、sum の最終値は 15 になります。
for ループ内の複数の式
for ループ内で複数の式を使用することもできます。これは、for ループ内に複数の初期化および/または反復子ステートメントを含めることができることを意味します。以下の例を見てみましょう。
例 3:複数の初期化式とイテレータ式を含む for ループ
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
for (int i=0, j=0; i+j<=5; i++, j++)
{
Console.WriteLine("i = {0} and j = {1}", i,j);
}
}
}
}
プログラムを実行すると、出力は次のようになります:
i = 0 and j = 0 i = 1 and j = 1 i = 2 and j = 2
このプログラムでは、2 つの変数 i を宣言して初期化しました。 と j
また、反復子部分には 2 つの式があります。つまり、両方の i と j 反復ごとに 1 ずつ増加します。
初期化ステートメントと反復子ステートメントのない for ループ
初期化、条件、および反復子ステートメントは、for ループではオプションです。これは、これらのステートメントがなくても for ループを実行できることを意味します。
このような場合、for ループは while ループとして機能します。以下の例を見てみましょう。
例 4:初期化とイテレータ ステートメントのない for ループ
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
int i = 1;
for ( ; 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 for ループの上で初期化され、その値はループの本体内でインクリメントされます。このプログラムは、例 1 のものと同じです。
同様に、条件もオプションのステートメントです。ただし、テスト式を使用しない場合、for ループは条件をテストせず、永久に実行されます (無限ループ)。
無限 for ループ
for ループの条件が常に true の場合、for ループは永久に実行されます。これは無限 for ループと呼ばれます。
例 5:無限 for ループ
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
for (int i=1 ; i>0; i++)
{
Console.WriteLine("C# For Loop: Iteration {0}", i);
}
}
}
}
ここで、私 1 に初期化され、条件は i>0
です .各反復で i の値をインクリメントしています 1ずつ、条件が false
になることはありません .これにより、ループが無限に実行されます。
条件を空白に置き換えることで、無限ループを作成することもできます。たとえば、
for ( ; ; ) { // body of for loop }
または
for (initialization ; ; iterator) { // body of for loop }
C言語