本文へスキップ
BecomeCoder

Java文法コース · 第4章 制御構文 ― 処理の流れを分岐・繰り返す · レッスン16

while と do-while ― 条件が続く限り繰り返す

ブラウザで完結

導入

「合計が100を超えるまで」「ユーザーが終了を選ぶまで」のように、繰り返す回数が事前にわからない処理には while が向いています。

説明

while (条件) { ... } は、条件が true である限り { } の中を繰り返します。

public class Main {
    public static void main(String[] args) {
        int i = 1;
        while (i <= 5) {
            System.out.println(i);
            i++;
        }

        int j = 0;
        do {
            System.out.println("実行:" + j);
            j++;
        } while (j < 3);
    }
}
  • while (i <= 5) { ... }i が5以下である限り繰り返します。ループの中で i++ を忘れると、条件が永遠に true のまま無限ループになってしまうので注意しましょう。
  • do { ... } while (条件);先に一度実行してから条件を判定する形です。while と違い、条件が最初から false でも、中身は必ず1回は実行されます

while は「実行前に条件をチェック」、do-while は「実行してから条件をチェック」という違いを覚えておきましょう。

やってみよう

下のエディタで i <= 55 を別の数に変えて、繰り返し回数がどう変わるか確かめましょう。do-while の条件を最初から false になる形(例えば j < 0)にして、それでも1回は実行されることを確認してみてください。

演習

while を使って 1 から 10 までの合計を sum という変数に集計し、表示してください(結果は 55)。

ヒント1を見る

int i = 1; int sum = 0; を用意し、while (i <= 10) { sum += i; i++; } とします。

ヒント2を見る

ループの中で i++ を忘れると無限ループになるので注意してください。

実際に動かしてみよう

下のエディタにJavaを書いて「実行」を押すと、学習用シミュレータが System.out.println の出力を表示します(本物のJVMではなく、教材の範囲を再現した軽量エンジンです)。クラス・継承・コレクションなども動きます。Scanner で入力を読む例は「標準入力」欄に値を入れてください。本文の例を書き換えて動かしてみましょう(Stream・ラムダ・スレッド・ファイル入出力など一部の機能は対象外です)。

Java — ブラウザ内で実行(学習用シミュレータ)

Javaの教材サブセットを動かす学習用シミュレータを読み込みます(本物のJVMではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。