【3分でわかるJava】while文とdo-while文の使い方

こんにちは!フリーランスの長野です。

Javawhile文って使っていますか?

ある条件がtrueであれば処理を繰り返し続けたい場合に使用します。

また「do-while」構文で使用したり、「break」句や「continue」句を使って必要のない処理を省略することもできます。

この記事では、while文について

・while文とは
・while文の使い方
・do-while文の使い方

という基本的な内容から、

breakやcontinueを使って

・ループを制御する方法

など応用的な内容についても解説していきます。

今回はwhile文について、使い方をわかりやすく解説します!

なお、Javaの記事については、こちらにまとめています。

目次

while文とは

while文とは冒頭でも述べましたが、条件がtrueの場合に処理が繰り返されます。

条件が変わらなければ処理をし続けることになりますが、条件が変わった(falseになった)時点で処理を終了します。

そのため、条件がtrueの場合は延々と処理を繰り返してしまうことになります。

そんな場合に「break」句でループを抜けたり、「continue」句を使って不要な処理をスキップするなどの処理の制御を行います。

これらの使い方について詳しく説明していきます。

while文の使い方

while文は以下のように記述します。

while(条件式) {処理}

サンプルコードで確認していきましょう。

public class Main {
 
    public static void main(String[] args) {
        int i = 0;
        while (i < 3) {
            System.out.println((i + 1) + "回目の処理です");
            i++;
        }
        System.out.println("処理が終了しました");
    }
 
}

実行結果:

1回目の処理です
2回目の処理です
3回目の処理です
処理が終了しました

このサンプルコードではint型の変数「i」が3未満であれば処理を繰り返します。

1回ごとの処理で変数「i」に1ずつ加算する処理を行っていますので、3回処理を繰り返すと条件を満たさなくなり、while文の繰り返しループを抜けて全ての処理が終了します。

ちなみに、while文は条件式が初めからfalseの場合にはブロック内の処理は1度も行われず、ブロック外の次の処理に移行します。

do-while文の使い方

次にdo-while文の使い方をみていきましょう。

do-while文は以下のように記述します。

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

while文とdo-while文の違いは、条件式が初めからfalseの場合にwhile文ではブロック内の処理が1度も行われないのに対して、do-while文ではブロック内の処理が1度は行われる点です。

do-while文の使い方をサンプルコードで確認していきましょう。

public class Main {
 
    public static void main(String[] args) {
        int i = 0;
        do {
            System.out.println((i + 1) + "回目の処理です");
            i++;
        } while (i < 3);
        System.out.println("処理が終了しました");
    }
 
}

実行結果:

1回目の処理です
2回目の処理です
3回目の処理です
処理が終了しました

do-while文の場合は処理を先に記述し、繰り返しの条件を処理の後に記述します。

ループを制御する方法

「break」句を使ってループを抜ける方法や、「continue」句を使って処理をスキップする制御方法についてみていきましょう。

breakでループを抜ける方法

break」句に到達すると、ループ内のそれ以降の処理は行わずにループ外の次の処理に移ります

サンプルコードで確認していきましょう。

public class Main {
 
    public static void main(String[] args) {
        int i = 0;
        while(i < 5){
            if ((i + 1) > 3){
                break;
            }
            System.out.println((i + 1) + "回目の処理です");
            i++;
        }
        System.out.println("処理が終了しました");
    }
 
}

実行結果:

1回目の処理です
2回目の処理です
3回目の処理です
処理が終了しました

このサンプルコードのwhile文の条件では、int型の変数「i」が5未満であれば処理を繰り返します。

しかし実行結果を確認すると途中で処理が行われなくなり、ループ外の処理に移行しています。

これは変数「i」が「i + 1 > 3」の条件を満たし「break」句に達したためで、それ以降のループ内の処理は実行されていません。

continueで処理をスキップする方法

continue」句に到達するとそれ以降のループの処理は行われず、ループの最初の処理から再び実行されます。

サンプルコードで確認していきましょう。

public class Main {
 
    public static void main(String[] args) {
        int i = 0;
        while(i < 5){
            i++;
            if (i < 3){
                continue;
            }
            System.out.println(i + "回目の処理です");
        }
        System.out.println("処理が終了しました");
    }
 
}

実行結果:

3回目の処理です
4回目の処理です
5回目の処理です
処理が終了しました

このサンプルコードでint型の変数「i」の「i < 3」という条件を満たす間はループ内の「continue」句以降の処理は行われず、ループ内の最初の処理に戻っています。

変数「i」の「i < 3」という条件を満たさなくなると、ループ内のそれ以降の処理も実行されています。

while文の「i < 5」という条件を満たさなくなると、ループ外の処理を実行し最後まで処理が実行されています。

まとめ

ここでは、while文の使い方について説明しました。

while文を使う場合は条件を満たしたあとに必要のない処理を行わないように、「break」句や「continue」句と組み合わせて適切に制御する必要があります。

「break」句や「continue」句とあわせて使いこなすことができるように、この記事を何度も参考にして下さいね!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次