広告 Java入門

【Java入門】繰り返し(while文)

はじめに

前回の記事では、for文を使った繰り返し処理について紹介しました。

本記事では、while文を使った繰り返し処理について紹介します。

while文を使った繰り返し処理

while文とは、条件が成立している間、処理を繰り返し実行する制御文です。for文との違いは、繰り返しの回数があらかじめ決まっていないところです。

while文の書き方は次のとおりです。

while文の書き方

while (条件) {

// 繰り返しの中で実行される処理

}

スポンサーリンク

while文の使用例

それでは、実際にプログラムでwhile文を使用した繰り返し処理の例を紹介します。

次の例では、「i < 5」の条件が成立している間、繰り返し処理を行っています。

[while文の使用例]

public class WhileSample {

    public static void main(String[] args) {
        int i = 0;
        
        while (i < 5) {
            System.out.println("iの値=" + i);   
            i++;
        }
    }
}

[実行結果]

iの値=0
iの値=1
iの値=2
iの値=3
iの値=4

上記のソースコードの処理の流れは次のとおりです。

while文の流れ(例)

  • 条件「i < 5」を判定(i = 0)
  • 結果trueなので、while内の処理を実行する(iに1を加算する)
  • 省略(※1と2の繰り返し)
  • 条件「i < 5」を判定(i = 5)
  • 結果falseなので、while文の繰り返し処理を終了する

while文の注意点

繰り返し回数があらかじめ決まっているfor文とは違い、while文は繰り返し回数が決まっていません。

そのため、常に成り立つような条件を書いてしまうと、処理を永遠に繰り返してしまいます。これを無限ループといいます。

次のソースコードは無限ループの例です。

[無限ループの例]

public class WhileSample2 {

    public static void main(String[] args) {
        int i = 0;
        
        while (i < 5) {
            System.out.println("iの値=" + i);
        }
    }
}
無限ループを発生させたら大問題だ・・・。
while文を使うときは、無限ループを作りこまないように注意が必要です。

do-while文を使った繰り返し処理

do-while文も、while文と同じように繰り返しを行う制御文です。

while文との違いは、while文は条件が成立しないと処理を1度も実行しないことがあるが、do-while文は、条件が成立しなくても必ず1度は処理を実行します。(条件を処理の下に書くため、必ず1度は処理が実行される)

do-while文の書き方は次のとおりです。

do-while文の書き方

do {

// 繰り返しの中で実行される処理

} while (条件)

do-while文の使用例

それでは、実際にプログラムでdo-while文を使用した繰り返し処理の例を紹介します。

次の例では、「i == 2」の条件は成立していないので、処理を1度だけ実行しています。

[do-while文の使用例]

public class DoWhileSample {

    public static void main(String[] args) {
        int i = 0;
        
        do {
            System.out.println("iの値=" + i);   
            i++;
            
        } while (i == 2);
    }
}

[実行結果]

iの値=0

上記のソースコードの処理の流れは次のとおりです。

do-while文の流れ(例)

  • do-while内の処理を実行する
  • 条件「i == 2」を判定(i = 0)
  • 結果falseなので、do-while文の繰り返し処理を終了する

終わりに

本記事では、while文を使った繰り返し処理について紹介しました。

次回の記事では、ループを中断するbreak文、ループ処理の途中で残りの処理をスキップして次のループ処理に移るcontinue文について紹介します。

helpful