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

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

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

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

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

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

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

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

breakやcontinueを使って

・ループを制御する方法

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

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

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」句とあわせて使いこなすことができるように、この記事を何度も参考にして下さいね!

プログラミング学習を効率良く進めたいなら…

学習を始めたけどエラーが解決できない
作りたいものはあるけど、何から始めればいいかわからない
プログラミングに対して、このような悩みを持っている方も多いですよね。

そんな方には、弊社が運営するサブスク型のプログラミングスクール「SAMURAI ENGINEER Plus+がおすすめです。



月額2980円(税別)で、主に4つのサービスを提供させていただきます。

  • 現役エンジニアによる月1度の「マンツーマン指導」
  • 平均回答時間30分の「Q&Aサービス」
  • 作りながら学べる28種類の「教材」
  • 学習を記録&仲間と共有できる「学習ログ」

目的にあった教材を選べば、どなたでも効率よく学習できるほか、Q&Aサービスやマンツーマン指導を活用することで、挫折せずにプログラミングの習得が可能です。

プログラミングを効率的に学びたい人はもちろん、何から始めたらよいのかわからない方は、ぜひ「SAMURAI ENGINEER Plus+」をご利用ください。
まずは30日無料体験

書いた人

長野 透

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
[email protected]