C#のwhile文の使い方!条件付きループを基礎から学ぼう
生徒
「C#で、同じ処理を繰り返したいときって、どうすればいいんですか?」
先生
「そういう時には、while文を使うと便利です。同じ処理を条件付きで繰り返すことができますよ。」
生徒
「条件付きってどういう意味ですか?」
先生
「指定した条件が「真(true)」の間だけ、処理を繰り返すということです。実際に見てみましょう!」
1. while文とは?
C#のwhile文とは、「ある条件が満たされている間、何度でも同じ処理を繰り返す」ための繰り返し処理(ループ処理)の一つです。
例えば、「変数の値が5未満の間、繰り返す」といった指定ができます。これにより、手動で同じ命令を何度も書く必要がなくなり、効率的にコードを書くことができます。
「条件付きループ」とも呼ばれ、「条件が満たされている間だけ繰り返す」という点が特徴です。
2. while文の基本構文
while文の基本的な書き方は以下のようになります。
while (条件)
{
// 繰り返したい処理
}
ポイント:条件の部分には「true」か「false」を返す式を書きます。条件が「true」である限り、波かっこ{ }の中の処理が何度も実行されます。
3. 具体的な使用例
例として、1から5までの数字を画面に表示するプログラムを作ってみましょう。
int number = 1;
while (number <= 5)
{
Console.WriteLine(number);
number++;
}
number++というのは「numberを1増やす」という意味です。このようにして、繰り返すたびに変数の値を変化させることで、ループを終了に導きます。
実行結果:
1
2
3
4
5
4. 無限ループに注意!
条件がずっと「true」のままだと、無限ループになってしまいます。例えば、次のコードはずっと1を出力し続けてしまいます。
int x = 1;
while (x <= 5)
{
Console.WriteLine(x);
// x を増やしていないので、ずっと x は 1 のまま!
}
このように、ループの中で条件が「false」になるように工夫する必要があります。
5. while文のよくある使い方
while文は、ユーザーの入力を待つ場面や、何かの条件が整うまで繰り返すような場面でよく使われます。以下は、ユーザーが「exit」と入力するまで繰り返す例です。
string input = "";
while (input != "exit")
{
Console.Write("文字を入力してください(exitで終了):");
input = Console.ReadLine();
}
!=(ノットイコール)は「〜でない場合」という意味です。Console.ReadLine()はキーボードからの入力を受け取る命令です。
6. do-while文との違い
while文とよく似た構文にdo-while文があります。これは「必ず1回は処理を行ってから、条件を確認する」という特徴があります。
以下がその構文です。
int y = 1;
do
{
Console.WriteLine(y);
y++;
} while (y <= 5);
while文では最初に条件を確認しますが、do-while文では先に処理が実行される点が違いです。条件が最初からfalseでも、1回は処理されるのが特徴です。
7. ループを途中で止めたいときは?
ループの途中で繰り返しをやめたいときにはbreak文を使います。以下の例では、数字が3になった時点でループを終了します。
int z = 1;
while (z <= 5)
{
if (z == 3)
{
break;
}
Console.WriteLine(z);
z++;
}
実行結果:
1
2
このようにbreakを使うことで、ループを任意のタイミングで止めることができます。
8. while文を使いこなそう
ここまでで、C#のwhile文の基本的な使い方と、do-while文との違い、breakによる制御方法までを学びました。
プログラミングにおいて、繰り返し処理は非常によく使われるので、しっかり理解しておくことが大切です。
特に、ループの条件が変わらないと無限ループになってしまうので、条件の設計には注意しましょう。
まとめ
C#のwhile文は、条件付きで繰り返し処理を行うための基本中の基本とも言える構文です。この記事を通して、「ある条件が真である間、処理を何度でも実行する」という仕組みを具体例と共に学びました。
while文の使い方としては、数値の増加やユーザーの入力待ち、条件成立までの処理ループなどが挙げられます。条件が成り立たない場合は一度も実行されないという特徴もあり、その点がdo-while文との違いになります。
また、無限ループに陥らないように、ループ中で変数を更新したり、終了条件をしっかり設計することが重要です。break文を使えば、任意のタイミングでループを抜けることもでき、柔軟な制御が可能となります。
以下に、ユーザーの入力を「終了」と入力するまで繰り返し処理する例を再掲します。
string input = "";
while (input != "終了")
{
Console.Write("文字を入力してください(終了で止まります):");
input = Console.ReadLine();
}
上記のように、条件としてinput != "終了"を指定することで、ユーザーが「終了」と打つまでは何度でも繰り返すことができます。
実際の開発現場でも、ログイン処理、設定の繰り返し確認、バッチ処理など様々な場面でwhile文は使われています。ループ制御を正しく理解することは、バグを防ぎ、効率的なプログラミングの第一歩と言えるでしょう。
条件の書き方ひとつで、プログラムの動作は大きく変わります。そのため、常に「今この条件はいつ真になって、いつ偽になるか?」という視点を持ってコードを書く習慣が大切です。
また、while文に慣れてくると、for文やforeach文との使い分けにも自然と目が向くようになります。
今回紹介した内容をしっかり理解し、実際にコードを書いて体感することで、C#のループ処理に自信が持てるようになります。
まずは簡単なカウント処理や、ユーザー入力を使った繰り返しから始めてみると良いでしょう。
繰り返しの基本を身につけることは、プログラミングの応用にもつながっていきます。
生徒
「先生、while文って思ってたより便利なんですね!条件が変われば繰り返しも変えられるってすごいです。」
先生
「その通りです。条件次第でどこまでも柔軟に動かせるのがwhile文の魅力ですよ。」
生徒
「途中で止めたいときにbreakを使うっていうのも覚えました。ちゃんと条件の設計を考えないと、無限ループになるって怖いですね。」
先生
「そうですね。繰り返し処理の本質は「いつ終わるか」をしっかり決めておくことです。それができれば、バグもぐっと減りますよ。」
生徒
「do-while文は条件がfalseでも1回は実行されるって覚えておきます!ちょっと違うだけで使い分けができるんですね。」
先生
「その理解は大事ですよ。プログラムは細かい仕様の違いを活かすことで、より正確で効率的に書けるようになります。」
生徒
「ありがとうございます、次はfor文やforeach文も学びたいです!」
先生
「いいですね!while文をマスターした今なら、他のループ文もきっとスムーズに理解できますよ。」