Javaのdo-while文は繰り返し処理で使います。for文などと似たようなものです。
本記事ではjavaのdo-whileについてその特徴や使い方を簡単に解説していきます。
本記事と一緒に読みたい記事
目次
[java]do-while文の使い方

do-while文の公式をまずはどうぞ。
1 2 3 4 |
do { //繰り返し行いたい処理を書く } while (条件式); //繰り返し処理を行う条件 |
do-while文の使い方の例をはこんな感じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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です |
①繰り返しを行う条件 -> 変数numが10以下の時
②繰り返しを行う処理 -> (i)変数numの値を出力(ii)変数numに+1する
こんな感じです。
結果は0から10まで出力されています。
while節の条件が成立する限り、do節の処理を繰り返すというものです。
do-whileとwhile文との違い
javaにはdo-whileに似たもので、while文があります。
公式をまずはどうぞ。
1 2 3 |
while (条件式){ //条件式が成立する限り繰り返したい処理を書く } |
do-while文と似ていますね。
使い方をみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
int num = 0; while (num <= 10){ //numが10以下の時処理を繰り返す System.out.println("数字は"+num+"です"); num++; } //結果: 数字は0です 数字は1です 数字は2です 数字は3です 数字は4です 数字は5です 数字は6です 数字は7です 数字は8です 数字は9です 数字は10です |
①繰り返しを行う条件 -> 変数numが10以下の時
②繰り返しを行う処理 -> (i)変数numの値を出力(ii)変数numに+1する
ここまで見るとdo-while文との違いがないように見えます。どちらでも良さように見えると思います。では次の例はどうでしょうか。
1 2 3 4 5 6 7 8 9 10 11 |
int num = 12; while (num <= 10){ //numが10以下の時処理を繰り返す System.out.println("数字は"+num+"です"); num++; } //結果: |
繰り返しの条件が、numが10以下の時で、numが12から始まるので処理は行われません。
do-whileの例を次にみます。
1 2 3 4 5 6 7 8 9 10 11 |
int num = 12; do { System.out.println("数字は"+num+"です"); num++; } while (num <= 10); //結果: 数字は12です |
繰り返しの条件が、numが10以下の時で、numが12から始まるのですが、処理は一度行われています。
ここがdo-whileとwhile文の決定的な違いです。
- 条件が成立しなくても、一回は処理を行いたい時はdo-while文
- 条件が成立する限り繰り返し処理を行いたい場合はwhile文
で使い分けましょう。Swift言語のwhile文の記事にも似たような解説があるので是非。
continueとbreak[制御構文]
do-while文では、決められた条件が成立する限り、繰り返し処理を行いますが、どこかのタイミングで処理を中断かスキップすることができます。
continueはdo-while文の繰り返し処理をスキップできる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
int num = 0; while (num <= 10){ //numが10以下の時処理を繰り返す if (num == 5) { num++; continue; //numが5の時処理をスキップする } System.out.println("数字は"+num+"です"); num++; } //結果: 数字は0です 数字は1です 数字は2です 数字は3です 数字は4です 数字は6です 数字は7です 数字は8です 数字は9です 数字は10です |
変数numが5の時だけ、処理がスキップされており出力結果にも5は出ていません。5の後も10まで処理が続けられています。
breakはdo-while文の繰り返し処理を中断できる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
int num = 0; while (num <= 10){ //numが10以下の時処理を繰り返す if (num == 5) { num++; break; //numが5の時処理を抜ける } System.out.println("数字は"+num+"です"); num++; } //結果: 数字は0です 数字は1です 数字は2です 数字は3です 数字は4です |
変数numが5の時breakが行われ、while節の処理が全て終了しています。continueは処理をスキップし、その後の処理を続するのに対し、breakは処理を全て中断しているのがポイントです。
breakについて詳しく書いた記事も参考にしてみてください。
[まとめ]Javaのdo-whileは繰り返し処理で使う
Javaのdo-while文は繰り返し処理で使います。while文と比較した時の違いは処理が1回は少なくとも行われる点です。
参考:
本記事と一緒に読みたい記事