Javaのwhile文はある条件が成立する(true)限り、処理を繰り返すというものです。
以下でソースコードと一緒に使い方をみていきましょう
while節がtrueのときって?
上で述べましたが、Javaのwhile文は繰り返し処理に使われます。
そしてwhile文では繰り返しが行われる条件を指定します。
この条件が成り立つことを、while(true)と書いたりします。
1 2 3 |
while (条件A) { //条件Aが成立する(true)の場合行う処理 } |
whileの後に処理を続ける条件を書きます。
その条件がtrueの場合はwhile節の中の処理が繰り返し行われます。
具体的には以下のように使えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
public static void main(String... args) { int num = 0; while (num <= 10){ //numが10以下の時処理を繰り返す System.out.println("数字は"+num+"です"); num++; } } //結果: 数字は0です 数字は1です 数字は2です 数字は3です 数字は4です 数字は5です 数字は6です 数字は7です 数字は8です 数字は9です 数字は10です |
do-while文
Javaのwhileのもう1つ特徴的な使い方にdo-whileがあります。使い方を載せます。
1 2 3 |
do { //条件Aが成立(true)する時繰り返す処理 } while (条件A); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public static void main(String... args) { int num = 0; do { System.out.println("数字は"+num+"です"); num++; } while (num <= 10); //numが10以下の時処理を繰り返す } //結果: 数字は0です 数字は1です 数字は2です 数字は3です 数字は4です 数字は5です 数字は6です 数字は7です 数字は8です 数字は9です 数字は10です |
初めに紹介したwhile文と結果が変わりません。どっちでも良さそうに見えますが、違いがあります。
do-while文では、
while(条件)が成立(true)しなくても、必ず1回は処理が行われます。
以下の例を見てください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public static void main(String... args) { int num = 12; do { System.out.println("数字は"+num+"です"); num++; } while (num <= 10); //numが10以下の時処理を繰り返す } //結果: 数字は12です |
whileの成立(true)条件は、
変数numが10以下の時です。
変数numには12が入っており条件が成立していませんが、1回処理が行われており、”数字は12です”という出力結果が出ています。
このようにdo-whileでは、条件が成立(true)しなくても、必ず1回は処理が行われます。
これをwhile文で試してみると違いがすぐに分かります。
1 2 3 4 5 6 7 8 9 10 |
public static void main(String... args) { int num = 12; while (num <= 10){ //numが10以下の時処理を繰り返す System.out.println("数字は"+num+"です"); num++; } } 結果: 出力なし |
numは12で成立(true)条件が、10以下なので当てはまらず、1回も処理が行われていません。
このようにwhileとdo-whileでは処理に違いがあります
おわりに
以上、javaのwhileの使い方を簡単にみてきました。
参考は以下の通りです。
・http://kaya-soft.com/java-toranomaki/programming/loop/entry5-5_while/
本記事と一緒に読みたい記事