while文、do-while文は、繰り返し処理を行うための制御構造です。これらの文は、特定の条件が真である限りブロック内のコードを繰り返して実行します。ただし、while文とdo-while文にはいくつか違いが存在し、それについても解説していきます。
Java Silver 第6回ではswitch文について学びました。
この記事はシリーズ記事です。全シリーズはこちらからご覧になれます。
while文とは
while文は、条件が真である限り繰り返し実行される制御構造です。ループの前に条件をチェックするため、ループが一度も実行されない可能性があります。
while文の実行例
このコードは、i が 5 未満の間、i の値を出力し、そのあと i を 1 ずつ増やしていきます。
int i = 0;
while (i < 5) {
System.out.println("iの値: " + i);
i++;
}
出力結果
iの値: 0
iの値: 1
iの値: 2
iの値: 3
iの値: 4
do-while文とは
do-while文は、条件が真である限り繰り返し実行される制御構造ですが、ループの中身が最低でも1回は実行されます。そのため、条件の評価はループの最後に行われます。
do-while文の実行例
このコードは、j の値を出力し、その後 j を1ずつ増やしていきます。このループは j が 5 未満の間続き、ループの最後に条件をチェックします
int j = 0;
do {
System.out.println("jの値: " + j);
j++;
} while (j < 5);
出力結果
iの値: 0
iの値: 1
iの値: 2
iの値: 3
iの値: 4
while文とdo-while文の注意点
実行のタイミング
while文では、最初に条件をチェックしてからループを実行しますが、do-while文では、まずループを1回実行し、その後条件をチェックします。そのため、条件がfalseの場合、while文とdo-while文では実行回数が異なります。
while文の場合
int i = 10;
int count = 0;
while (i < 10) {
count++;
}
System.out.println("実行回数 : " + count);
出力結果
実行回数 : 0
do-while文の場合
int i = 10;
int count = 0;
do {
count++;
} while (j < 10);
System.out.println("実行回数 : " + count);
出力結果
実行回数 : 1
中カッコを省略した場合
while文とdo-while文で中カッコを省略した場合、ブロック内の最初の1行のみ実行されます。
例
int i = 0;
while (i < 3)
System.out.println(i);
i++;
System.out.println("iの値は " + i);
実行結果
このコードを実行すると無限ループになります。上記で説明したように、ロック内の最初の1行のみ実行されるため、i がインクリメントされずにwhile文の条件式がtrueを繰り返してしまいます。
まとめ
今回は、Javaのwhile文とdo-while文について解説してきました。それぞれ繰り返し処理ではあるものの、実行のタイミングが異なることを覚えておきましょう。
次回はfor文について学習します。
コメント