whileを使った反復処理についてです。同じ反復処理にforもありますが、2つの違いはforは繰り返す回数を指定するのに対し、whileは条件を指定して条件を満たす間処理を繰り返します。
for文については、[C# プログラミング入門] 反復処理(for文)についてを見てください。
while文の使い方
whileの構文はこんな感じです。
while(条件式)
{
// ここに繰り返し行う処理を書く
}
条件式には結果がboolean型(true または false)になるようにします。
そして、条件式の結果がtrueの間、{ } ブロック内の処理を繰り返し実行します。
{ } ブロック内の処理を繰り返すたびに条件式の判定が行われます。
whileは繰り返す回数がわからない場合に使われます。
下のサンプルは1~100までのランダムな数値が10になるまで処理を繰り返しています。
ランダムなので処理を実行するたびに繰り返しの回数が変わります。
whileは0回以上の繰り返しです、たとえば8行目の段階でrand_valueに10が代入されると繰り返し処理(13~15行目)は実行されません。
using System;
class Program
{
public static void Main()
{
// 1~100までのランダムな数値を取得する
var rand = new Random();
var rand_value = rand.Next(1, 100);
// ランダムな数値が10になるまで処理を繰り返す
while (rand_value != 10)
{
Console.WriteLine($"rand_value={rand_value}");
// 次のランダムな数値を設定
rand_value = rand.Next(1, 100);
}
}
}
条件式に true を指定すると、無限ループになります。
この場合、breakキーワードを使ってループを抜ける必要があります。
whileの途中でループを抜ける(break)
breakキーワードを使うとwhileの繰り返し処理の途中で抜けることができます。
using System;
class Program
{
public static void Main()
{
// 1~100までのランダムな数値を作る
var rand = new Random();
// ただただ繰り返す
while (true)
{
var rand_value = rand.Next(0, 100);
Console.WriteLine($"rand_value={rand_value}");
// 10だったら繰り返し終了
if (rand_value == 10) {
Console.WriteLine("繰り返し終了");
break;
}
}
}
}
繰り返し処理の途中で繰り返しの先頭に戻る(continue)
continueキーワードを使うと { } ブロック内の処理の途中で先頭(繰り返しの条件判定)まで処理を戻すことができます。
using System;
class Program
{
public static void Main()
{
// 1~100までのランダムな数値を作る
var rand = new Random();
// ただただ繰り返す
while (true)
{
// 1~100までのランダムな数値を設定
var rand_value = rand.Next(0, 100);
// 数値を表示
Console.WriteLine($"rand_value={rand_value}");
// continueで処理を先頭に戻す
if (rand_value != 10) continue;
// 繰り返し終了
break;
}
}
}
リンク
リンク
C# 記事まとめページに戻る(他のサンプルコードもこちら)
C# プログラミング講座
C#についての記事まとめページです。開発環境VisualStudioのインストール方法や使い方、プログラミングの基礎知識についてや用語説明の記事一覧になっています。講座の記事にはすぐに実行できるようにサンプルコードを載せています。
コメント