【C#】for文の使い方についてわかりやすく詳しく解説

C#プログラミングにおいて、for文は非常に重要な構文の一つです。

for文を使うことで、同じ処理を繰り返し実行することができます。

今回はfor文の使い方について、サンプルコードも交えて解説していきます。

目次

for文とは

for文は、プログラムの中で同じ処理を繰り返し実行するために使用される制御構造の一つです。for文を使うことで、指定した回数だけ同じ処理を繰り返すことができます。 C#では、以下のような構文でfor文を記述します。

for (初期化式; 条件式; 更新式)
{
    // 繰り返し実行する処理
}

初期化式は、ループ変数の初期値を設定するために使用されます。条件式は、ループ変数が特定の値に達するまでループを続けるかどうかを判断するために使用されます。

更新式は、ループ変数の値を更新するために使用されます。 例えば、以下のコードは、Hello World!という文字列を5回表示します。

for (int i = 0; i < 5; i++)
{
    Console.WriteLine("Hello World!");
}

この場合、初期化式ではiという名前の整数型変数が0で初期化されています。条件式ではiが5未満である限りループが続けられます。更新式ではiが1ずつ増加していきます。

以上がfor文の基本的な使い方です。次に、for文内で配列やリストなどのデータ構造を扱う方法について説明します。

for文内にfor文をネストできる

for文はネスト(入れ子)にすることも可能です。

これによって複雑な処理も実現可能です。例えば、以下のコードは2重ループになっており、*記号を5×5個表示します。

for (int i = 0; i < 5; i++)
{
    for (int j = 0; j < 5; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}
*****
*****
*****
*****
*****

以上がC#でのfor文の基本的な使い方です。

for文の応用例

for文は、繰り返し処理を行うための基本的な構文ですが、配列や文字列、九九の表など、様々な応用が可能です。以下では、その一部を紹介します。

for文での配列の処理

配列とは、複数のデータをまとめて扱うために使用されるデータ型です。for文を使うことで配列内の要素に効率よくアクセスすることができます。

int[] numbers = { 1, 2, 3, 4, 5 };
for (int i = 0; i < numbers.Length; i++)
{
    Console.WriteLine(numbers[i]);
}

上記のコードでは、numbersという名前のint型配列を定義し、for文を使って各要素にアクセスしています。Lengthプロパティは、配列内の要素数を取得するために使用されます。

for文での文字列の処理

文字列もまた、複数の文字をまとめて扱うために使用されるデータ型です。for文を使えば文字列内の各文字に1文字ずつアクセスすることができます。

string str = "Hello World";
for (int i = 0; i < str.Length; i++)
{
    Console.WriteLine(str[i]);
}

上記のコードでは、strという名前のstring型変数を定義し、for文を使って各文字にアクセスしています。string型変数はchar型の配列でもあるため、Lengthプロパティで要素数(文字数)が使用可能です。

for文での九九表作成

最後に、for文を使って九九表を作成する方法も紹介します。

for (int i = 1; i <= 9; i++)
{
    for (int j = 1; j <= 9; j++)
    {
        Console.Write("{0}×{1}={2}\t", j, i, j * i);
    }
    Console.WriteLine();
}

上記コードでは二重ループ構造(ネスト)でi, jそれぞれ1~9まで繰り返し処理しています。

内側ループ(j)は外側ループ(i)が一周するごとにリセットされます。Console.Writeメソッドは改行しない出力方法です。

for文の注意点

「C#でのfor文の注意点について解説」 for文はプログラミングにおいて非常に重要な構文の一つですが、使い方を間違えると思わぬバグを引き起こすこともあります。

ここでは、for文を使用する際に気を付けるべき注意点について解説します。

無限ループに注意

for文は繰り返し処理を行うための構文ですが、条件式や変数の更新処理を誤ると無限ループが発生してしまいます。

無限ループが発生するとプログラムが一生終わらないため、必ず条件式や変数の更新処理を正しく設定するようにしましょう。 以下は無限ループが発生する例です。

for (int i = 0; i < 10; i--) {
    Console.WriteLine(i);
}

この場合、iの値は常に0以下となってしまい、条件式が成立し続けるため無限ループが発生します。

変数のスコープに注意

for文で宣言された変数は、そのブロック内でしか有効ではありません。

そのため、for文内で宣言した変数をfor文の外でアクセスしようとするとコンパイルエラーになります。

for (int i = 0; i < 10; i++) {
    Console.WriteLine(i);
}
Console.WriteLine(i); //エラー

for文内で操作したiを外でも扱いたい場合は、以下のようにfor文の外で変数宣言を行っておきましょう。

int i;
for (i = 0; i < 10; i++) {
    Console.WriteLine(i);
}
Console.WriteLine(i); //OK

for文の使いすぎに注意

for文は繰り返し処理を行う際に非常に便利な構文ですが、使いすぎると可読性や保守性が低下してしまいます。特にネストした複雑なfor文は読みづらくなりやすく、バグも混入しやすくなります。

三重ループ以上になる場合は、関数を分けて可読性を下げないようにしましょう。

そのため、必要最小限度だけ使用するよう心掛けましょう。

以上がC#でのfor文を使用する際に気を付けるべき注意点です。これらのポイントを押さえて正しく使いこなせば、より安全かつ効率的なプログラム作成が可能です。

目次