Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

whileは繰り返し処理

Javaで繰り返し処理で使う「while」構文。

この記事では、Javaの「while」構文を使って、繰り返し処理を行う方法を解説します。

whileの基本

Javaの「while」は、大きく条件式と、処理ブロックで構成され、構文は以下のようになります。

while (条件式) {
  処理ブロック
}

「while」は、条件式が一致している間、「{」から「}」のブロック内の処理を繰り返し実行します。

では、簡単なサンプルコードで、実際に動かしてみましょう。次の例は、変数 「cnt」が5に達するまで繰り返しを行うコードです。

int number = 1;
while (number < 5) {
  number ++;
  System.out.println(number);
}

サンプルコードを実行すると、次のような実行結果が出力されます。

■ 実行結果

1
2
3
4

では、「while」の条件式が最初から不一致だった場合、どうなるのでしょうか?

答えは、一度も「while」内の処理が実行されません。

試しに、条件式が必ず不一致となる「while」文を作成して実行してみましょう。

int number = 5;

while (number < 5) {
  System.out.println(number);
  number ++;
}
System.out.println("終了");

■ 実行結果

終了

結果を見て分かるように、「while」の条件式が最初から不一致だった場合、一度も「while」内の処理が実行されません。

do-whileでループの最後に条件判定

次に「do-while」構文の使い方について解説します。「do-while」は「while」文とは異なり、処理ブロックの最後で条件式の判定をします。

「do-while」の構文は以下の通りです。

do {
処理
} while (条件式);

「do-while」は、処理ブロックの最後で条件式の判定をする為、最初から条件式が一致しない場合でも、必ず1回は処理が実行される点が、「while」と異なります。

実際に、必ず1回は処理が実行されるか、次のサンプルコードで動きを見てみましょう。

int number = 5;

do {
    System.out.println(number);
    number++;
} while (number < 5);
System.out.println("終了");

■ 実行結果

5
終了

ループを途中で抜ける「break」

「break」は、ループ処理を途中で抜けたいときに使用します。「break」が実行されると、「while」の外側へ処理が移動します。

実際に、サンプルコードを見ていきましょう。

int number = 1;
while (true) {
    System.out.println(number);
    if (number >= 5) {
        break;
    }
    number++;
}

■ 実行結果

1
2
3
4
5

処理をスキップする「continue」

「continue」は、その時点で繰り返し処理をスキップし、次のループ処理を先頭から実行します。

次のサンプルコードは、変数「number」が偶数の時は、「continue」を実行して、奇数の時だけコンソールに変数「number」の値を出力しています。

int number = 0;
while (number < 10) {
    number++;
    if (number % 2 == 0) {
        continue;
    }
    System.out.println(number);
}

■ 実行結果

1
3
5
7
9
ポテパンダの一言メモ

「break」と「continue」の違いは以下の通りです。

break文=繰り返しの処理ブロックから抜け出す
continue文=次のループ処理を先頭から実行

また、「break」および「continue」は、「for」文でも利用できます。

「while」と「for」文の使い分け

Javaには「while」の他に、「for」文でも繰り返し処理ができます。「for」文に出来ることは「while」でも書け、使い分けに困ることもあるでしょう。

使い分けの、明確な基準はありませんが、一般的には、以下の方針で使い分けされることが多いようです。

回数が決まってる繰り返しは「for」

開始と終了のインデックスが決まっいる繰り返し処理は、「for」文が適しています。

例えば以下のようなケースでは、「for」を使用します。

・ 決まった回数の繰り返し
・ 配列/Listの繰り返し

試しに、配列の繰り返し処理を、「while」と「for」で書き比べたものが、以下のサンプルコードです。

▪️ 「while」で配列の繰り返し

int[] intArray = new int[] {10, 30, 50, 70, 100};
int index = 0;
while (index < intArray.length) {
    int value = intArray[index];
    System.out.println(value);
    index++;
}

▪️ 「for」で配列の繰り返し

int[] intArray = new int[] {10, 30, 50, 70, 100};
for (int value : intArray) {
    System.out.println(value);
}

「while」で書かれた方は、ソースの行数が多く見にくくなっているのに対し、「for」で書いた方はスッキリ見やすくなっており、ループを抜ける条件の間違いもなさそうです。

回数が決まっていない繰り返しは「while」

繰り返す回数が事前に分かっていない場合は、「while」文が適しています。例えば、ファイルを読み込む処理などは「while」を使います。

Javaでファイルを読み込む場合、事前に行数を把握する事は難しいため、ファイルの1行目から順々に読んでいき、読み込む行が無くなったら(読み込んだ行がnullだったら)繰り返しを終了します。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        File file = new File("/path/to/file");
        FileReader fr = new FileReader(file);
        BufferedReader br = new BufferedReader(fr);
        String text;
        // 読み込みむ行が無くなるまで、whileで繰り返し
        while ((text = br.readLine()) != null) {
            System.out.println(text);
        }
        br.close();
    }
}

このように、繰り返しを終了する条件が、回数ではなく、条件式で表される場合、「while」を使用します。

繰り返し処理はJavaのキホン

Javaに限らす、繰り返し処理は、プログラミングにおける基本です。この機会にマスターしておきましょう。

「while」をマスターしたら、同じ繰り返し構文の「for」文を以下の記事で学びましょう。

【関連記事】
【必須スキル】繰り返し処理で利用するJava for文の使い方について解説!

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。