>> Java入門トップに戻る
Javaのwhile、do while構文について説明します。
条件を指定し、その条件が「true」の時は処理を繰り返すというような構文になります。
下記のコードを見てください。
上記のコードだと、変数aを表示し、変数aの値を1ずつ増加させる処理をループさせています。
条件式には「boolean値」が得られる式、値、変数、メソッドなどを書きます。
この条件式がtrueの間はループし続けることになります。
変数aが10になった時点でwhile文の条件に反する(falseを返す)ようになるのでループを拔けます。
なので、これを実行すると0~9までの数字が表示されて、プログラムが終了します。
以下のコードを見てください。
while文と違うのは、条件をチェックするタイミングです。
while文はループ処理に入る前に条件をチェックするのに対し、do while文は「ループ処理を1度実行してから」条件をチェックします。
ですので、必ず1度は処理を実行した後に条件にマッチしてたらループさせたい時にdo while文は使えます。
以下のコードを見てください。
上記コードだとaが5になった時に「break」が実行され、ループを拔けます。
このようにbreakを使うことで途中でループを抜けることも出来ます。
while文、do while文も重要な構文なのでしっかり覚えておきましょう。
先ほどの「break」はループ処理自体を抜けるものでしたが、ループ処理の途中でcontinue以降の処理をスキップして、またループの最初に戻るというような処理が出来ます。
以下のコードを見てください。
「continue」が実行されると、以降の処理がスキップされてループの最初に戻るので、後続の変数numを出力する処理が実行されません。
なのでこのコードを実行すると、10までの奇数だけが出力されます。
これらの「break」や「continue」はfor文でも使えますので、試してみてください。
>> 【for文、拡張for文】に進む
>> Java入門トップに戻る
while、do while構文
While文
while文は繰り返しの処理をするときに使います。条件を指定し、その条件が「true」の時は処理を繰り返すというような構文になります。
下記のコードを見てください。
int a=0; while(a<10){ System.out.println(a); ++a; }while文は「while(条件式)」と書いて、ループさせる処理を括弧で囲みます。
上記のコードだと、変数aを表示し、変数aの値を1ずつ増加させる処理をループさせています。
条件式には「boolean値」が得られる式、値、変数、メソッドなどを書きます。
この条件式がtrueの間はループし続けることになります。
変数aが10になった時点でwhile文の条件に反する(falseを返す)ようになるのでループを拔けます。
なので、これを実行すると0~9までの数字が表示されて、プログラムが終了します。
do while文
do while文もwhile文とほとんど同じなのですが、若干違います。以下のコードを見てください。
int a=0; do{ ++a; System.out.println(a); }while(a<10);do while文は「do{}」と書いてループさせる部分処理を囲み、その後ろに「while(条件式);」と書きます。最後のセミコロンを忘れないでください。
while文と違うのは、条件をチェックするタイミングです。
while文はループ処理に入る前に条件をチェックするのに対し、do while文は「ループ処理を1度実行してから」条件をチェックします。
ですので、必ず1度は処理を実行した後に条件にマッチしてたらループさせたい時にdo while文は使えます。
while、do while文のループを抜ける(break)
while、do while文も条件式がfalseになった時にループを拔けますが、途中で抜ける方法もあります。以下のコードを見てください。
int a=0; while(a<10){ System.out.println(a); ++a; //aが5になったらループを抜ける。 if(a==5){ break; } }ループ処理内にif文をかいて「break」を書いてます。
上記コードだとaが5になった時に「break」が実行され、ループを拔けます。
このようにbreakを使うことで途中でループを抜けることも出来ます。
while文、do while文も重要な構文なのでしっかり覚えておきましょう。
ループ処理の途中でスキップする
もうひとつ説明しておくこととして、ループ処理の途中でスキップすることが出来る「continue」というものがあります。先ほどの「break」はループ処理自体を抜けるものでしたが、ループ処理の途中でcontinue以降の処理をスキップして、またループの最初に戻るというような処理が出来ます。
以下のコードを見てください。
int num = 0; while(num<10){ ++num; if(num%2==0){ continue; } System.out.println(num); }変数numがwhileループ内で1ずつ増えていますが、numが2で割り切れた時だけ「continue」が実行されています。
「continue」が実行されると、以降の処理がスキップされてループの最初に戻るので、後続の変数numを出力する処理が実行されません。
なのでこのコードを実行すると、10までの奇数だけが出力されます。
これらの「break」や「continue」はfor文でも使えますので、試してみてください。
>> 【for文、拡張for文】に進む
>> Java入門トップに戻る