スライドショースライドショー

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

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

長野 透

長野 透

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

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説