Java入門|while文で条件に応じて繰り返す

条件を見ながら、必要なだけくり返す。while文を覚えると、プログラムの流れがもっと自然に書ける。

これまで学んできたfor文は、何回くり返すかがある程度はっきりしている処理を書くのに向いていました。たとえば、5回表示する、1から10まで順番に処理する、といった場面ではfor文がとても便利でしたね。

一方で、プログラムの中には「回数は最初から決まっていないけれど、ある条件が成り立っている間は続けたい」という処理もたくさんあります。そんなときに活躍するのが、while文です。

while文は、まず条件を確認し、その条件がtrueである間だけ処理をくり返します。条件がfalseになった時点で処理を終えるので、回数よりも「状態」や「条件」を基準にした繰り返しに向いています。たとえば、「まだ終わっていない間は続ける」「目標に達するまで続ける」といった流れを表すのにぴったりです。

ここでは、while文の基本の形、動き方、for文との違い、注意点までを、サンプルプログラムと表を交えながら丁寧に見ていきます。while文の考え方がつかめると、プログラムの流れをより柔軟に組み立てられるようになります。

while文とは何か

while文は、条件がtrueである間、同じ処理を何度もくり返すための構文です。

基本の書き方は次のようになります。

while(条件){
    文;
    ...
}

この構文では、最初に条件を調べます。
条件がtrueなら、ブロックの中の文を上から順に実行します。
そして処理が終わったら、もう一度条件を調べます。
この流れを、条件がfalseになるまでくり返していきます。

つまりwhile文は、条件が続いている間だけ処理を続ける仕組みだと考えるとわかりやすいです。

while文の流れ

while文の処理の流れを、文章で整理すると次のようになります。

手順内容
1条件を確認する
2条件がtrueならブロック内の処理を実行する
3処理が終わったら、もう一度条件を確認する
4条件がfalseになったら終了する

ここで大事なのは、while文は処理を始める前に条件を確認するという点です。
そのため、最初の時点で条件がfalseなら、ブロックの中は1回も実行されません。

たとえば、こんなイメージです。

while(宿題が終わっていない){
    宿題を進める
}

この場合は、「宿題が終わっていない」がtrueの間だけ宿題を進めます。すでに終わっていれば、最初から何も実行されません。

while文は条件でくり返す

for文は「何回くり返すか」が見えやすい構文でしたが、while文は「どんな条件の間、続けるのか」が見えやすい構文です。

この違いを表にすると、次のようになります。

向いている場面
for文回数が決まっているくり返し
while文条件が成り立つ間だけ続けるくり返し

たとえば、

  • 5回だけ表示する
  • 1から10まで順に処理する

といった場合はfor文が自然です。

一方で、

  • 点数が目標に届くまで勉強する
  • 在庫がある間だけ処理する
  • 条件を満たしている間だけ続ける

といった場合はwhile文の考え方が自然です。

Sample5.java でwhile文を理解する

では、while文を使ったサンプルプログラムを見ていきましょう。

ファイル名:Sample5.java

class Sample5
{
    public static void main(String[] args)
    {
        int i = 1;  // 回数を数えるための変数

        while(i <= 5){
            System.out.println(i + "回目の確認です。今日も学習を進めましょう。");
            i++;  // 条件が変化するように1増やす
        }

        System.out.println("確認メッセージの表示が終わりました。");
    }
}

実行結果

1回目の確認です。今日も学習を進めましょう。
2回目の確認です。今日も学習を進めましょう。
3回目の確認です。今日も学習を進めましょう。
4回目の確認です。今日も学習を進めましょう。
5回目の確認です。今日も学習を進めましょう。
確認メッセージの表示が終わりました。

このプログラムの動き

このプログラムでは、変数iを1で初期化しています。
そのあと、while(i <= 5) という条件を確認します。
条件がtrueである間は、メッセージを表示し、i++ でiの値を1増やします。

この流れを表にすると、次のようになります。

iの値条件 i <= 5実行内容
1true1回目のメッセージを表示
2true2回目のメッセージを表示
3true3回目のメッセージを表示
4true4回目のメッセージを表示
5true5回目のメッセージを表示
6falsewhile文を終了

このように、iが1から5まで変化している間だけメッセージが表示されます。そしてiが6になったとき、条件がfalseになるため、繰り返しが終わります。

while文の大事なポイント

このサンプルで特に大切なのは、条件がいつかfalseになるようにしていることです。

今回のコードでは、i++ があるため、iの値は1ずつ増えていきます。
その結果、最初はtrueだった i <= 5 が、やがてfalseになります。

もし条件に関係する値が変化しなければ、while文はずっと終わらない可能性があります。ここがwhile文でとても注意したいところです。

条件を変化させないとどうなるか

while文では、条件がtrueのまま変わらないと、処理が永遠にくり返されることがあります。
これを無限ループといいます。

たとえば、次のようなコードを考えてみてください。

int i = 1;

while(i <= 5){
    System.out.println(i + "回目の確認です。");
}

このコードでは、iの値を増やす処理がありません。
そのため、iはずっと1のままです。すると、i <= 5 は何度確認してもtrueのままになります。

その結果、while文は終わらず、同じ処理が何度も実行され続けてしまいます。

無限ループになる理由

無限ループになる原因を整理すると、次のようになります。

項目状態
初期値i は 1
条件i <= 5
値の変化i が変わらない
結果条件がずっとtrueのままになる

while文を書くときは、条件だけを書くのではなく、その条件が変わる仕組みも一緒に考えることがとても重要です。

for文との関係

実は、今回のSample5.javaの処理は、for文でもほぼ同じように書けます。

たとえば、考え方としては次のような処理です。

for(int i = 1; i <= 5; i++){
    System.out.println(i + "回目の確認です。今日も学習を進めましょう。");
}

このように、for文とwhile文は似た処理を書けることがあります。
ただし、見た目や考え方に少し違いがあります。

比較項目for文while文
初期化・条件・変化1行にまとまる別々に書く
何が見やすいか回数の管理条件による継続
向いている場面回数が明確条件が主役

今回のように回数が決まっている処理ならfor文でも書けますが、while文を使うことで「条件が成り立つ間だけ続ける」という考え方がはっきり見えるようになります。

while文では最初に条件を調べる

while文の特徴として、最初に条件を確認する点はとても大事です。

たとえば、次のような場合を考えてみましょう。

int i = 10;

while(i < 5){
    System.out.println("表示されます。");
}

このコードでは、最初の時点で i < 5 はfalseです。
そのため、ブロックの中は1回も実行されません。

この性質は、while文を理解するうえで重要です。
つまりwhile文は、条件を満たしているときだけ始まる繰り返しなのです。

while文の見方のコツ

while文を読むときは、次の3つを意識すると理解しやすくなります。

注目する点確認する内容
初期値変数がどこから始まるか
条件どこまで続くのか
変化条件がどう変わっていくか

今回のSample5.javaなら、

  • 初期値は i = 1
  • 条件は i <= 5
  • 変化は i++

です。

この3つをセットで見ることで、何回くり返されるのか、どこで終わるのかが自然と見えてきます。

この図は、while文が条件判定から始まることを表現しています。
また、処理を実行したあとに変数が更新され、その結果でもう一度条件を確認する、という流れもつかみやすくなります。

特に大切なのは次の点です。

注目点意味
条件判定が先にある条件がfalseなら1回も実行されない
更新が必要条件が変わらないと終了できない
falseで終了するいつ終わるかを意識して書く必要がある

この流れが頭に入ると、while文のコードを読むときも、自分で書くときもかなり分かりやすくなります。

while文で気をつけたいこと

while文はシンプルなぶん、初心者がつまずきやすいポイントもあります。

よくあるミス内容
更新を書き忘れる無限ループになる
条件式を間違えるくり返し回数がずれる
初期値を誤る最初から実行されないことがある
ブロックの範囲を見落とすどこまでくり返すか分かりにくくなる

たとえば、<= と < の違いだけでも、処理回数は変わります。
また、iを1から始めるのか0から始めるのかでも結果は変わります。
最初のうちは、表にして値の変化を追いながら確認するととても理解しやすいです。

while文が役立つ場面

while文は、ただ同じ処理を何回もするだけでなく、条件が成り立つ間だけ続けたい処理で力を発揮します。

たとえば、次のような場面です。

  • ユーザーが終了を選ぶまでメニューを表示する
  • 正しい値が入力されるまで入力を受け付ける
  • 条件を満たすまで計算を続ける
  • データが残っている間だけ読み込む

こうした処理では、最初から回数が決まっていないことが多いので、while文の考え方がとても役立ちます。

while文を学ぶ意味

while文を使えるようになると、プログラムの流れを「回数」だけでなく「状態」でも考えられるようになります。これはJavaの学習を進めていくうえで、とても大切な一歩です。

for文は回数が見やすく、while文は条件の流れが見やすい。
この違いを理解して使い分けられるようになると、書けるプログラムの幅がぐっと広がります。

今回の内容では、while文は

  • 条件がtrueの間くり返す
  • 最初に条件を確認する
  • 条件が変化するように書く必要がある

という点が特に重要でした。

この感覚をつかんでおくと、この先のループ処理や、より実践的なプログラムの学習にもつながっていきます。