本文へスキップ
BecomeCoder

C#文法コース · 第2章 制御構文 · レッスン19

while / do-while ループ

ブラウザで完結

導入

「条件を満たす間ずっと繰り返す」——回数が事前に決まっていない繰り返しにはwhileを使います。

図解

flowchart TB
    C{"条件を満たす?"} -->|true| B["本体を実行"]
    B --> C
    C -->|false| E["ループ終了"]

サンプル

// 条件が true の間、繰り返す
int count = 3;
while (count > 0)
{
    Console.WriteLine($"残り{count}");
    count--;    // count = count - 1
}
Console.WriteLine("発射!");
// 残り3 / 残り2 / 残り1 / 発射!

// do-while は「まず1回実行してから条件判定」
int n = 0;
do
{
    Console.WriteLine("最低1回は実行される");
} while (n > 0);   // 条件は false だが、本体は1回実行済み
  • while (条件): 条件がtrueの間、繰り返す
  • ループの中で条件をfalseに近づけないと無限ループになる(count--が重要)
  • do { } while (条件): 先に1回実行してから条件を判定する

演習

int money = 100;
int price = 30;
int count = 0;

// TODO: money が price 以上ある間、price を支払い続け、
//       買えた回数を count に数えて "3個買えます" の形式で出力してください
___
  • 期待される出力: 3個買えます
ヒント1を見る

while (money >= price) { money -= price; count++; }

ヒント2を見る

上のループの後にConsole.WriteLine($"{count}個買えます");

まとめ

  • while (条件)は条件を満たす間の繰り返し
  • 条件を変化させないと無限ループになる
  • do-whileは必ず1回は実行してから判定する

次回: コレクションを1件ずつ処理するforeachです。

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

C# — ブラウザ内で実行

ブラウザ内でC#を動かす環境を読み込みます(初回のみ数秒)。
スクロールして表示された時点でも自動で読み込まれます。