[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

do~while文

pointこの用語のポイント

pointプログラムを書くときの構文だよ

point繰り返し処理を書くときに使うよ

point1回処理をした後に条件判定を行うよ

スポンサーリンク

簡単に書くよ

do~while文とは

プログラミングで使う構文のひとつ
であり

「まず1回この処理をやりたまえ。その後は条件を満たしているかぎり同じ処理を繰り返してね~」な繰り返し処理を書くときに使う構文
です。

image piyo

詳しく書くよ

順番に見ていきましょう。

プログラムは「人間様の代わりにコンピュータさんにあれこれ命令してくれるやつ」ね。
このプログラムを実際に作る作業を「プログラミング」と言います。

do~while文

プログラミングは、コンピュータさんに対して、仕事を指示する行為です。
「この場合は、あれしろ」「この場合は、これしろ」と、細かく指定していきます。

さて、このコンピュータさんに対する指示ですが、飽きるまで……もとい、必要がなくなるまで同じ処理をやらせたい場合があります。
例えば「ピヨ太君が寝ている間は、ピヨ太君を起こす」とかですね。
スヌーズ機能付きの目覚まし時計のイメージです。

多くのプログラミング言語で用意されている、このような処理を書くときの構文のひとつが「do~while文」です。
「このような処理」は一般的に「繰り返し処理ループ処理)」と呼ばれます。

ここまでの説明を読んで「あれ?それってwhile文のことじゃないの?」と思う人もいるでしょう。
あるいは「while文の説明を丸々コピってきて、手抜きしたなー」と思う人もいるかもしれません。

手抜きではありません。

断じて、手抜きではありません。

while文とdo~while文の違いは後で書きます。
取りあえず気にしないで読み進めてください。

do~while文の書き方は

do{
 ピヨ太君を起こす
}while(ピヨ太君は寝ている?);


のような形が一般的です。
whileの条件の最後には「;(セミコロン)」が付きます。
うっかり忘れないように、ご注意ください。

例で挙げた処理では

1.ピヨ太君を起こす
2.ピヨ太君が寝ているか?の判定
 ※寝ていれば3へ移動。起きていれば終わり
3.ピヨ太君を起こす


の流れで、以降は2と3を繰り返します。

do~while文2

プログラミング言語によって細かい書き方の違いはありますけどね。
いずれにせよ、英語の「do(やる) + while(~する間)」のイメージです。

さて、お待たせしました。
先ほど華麗にスルーした、while文とdo~while文の違いについて説明します。

結論から書くと

while文:最初にやるのは条件判定
do~while文:最初にやるのは処理


の違いです。
それ以外は、まったく同じです。

while文の書き方は

while(ピヨ太君は寝ている?){
 ピヨ太君を起こす
}


です。

上から見ていきましょう。
最初に来るのは

while(ピヨ太君は寝ている?){

です。
次が

ピヨ太君を起こす

です。

その後は

while(ピヨ太君は寝ている?){

に戻ります。
あとはピヨ太君が起きるまで

ピヨ太君を起こす
while(ピヨ太君は寝ている?){
ピヨ太君を起こす
while(ピヨ太君は寝ている?){

と処理が繰り返されます。

1.ピヨ太君が寝ているか?の判定
 ※寝ていれば2へ移動。起きていれば終わり
2.ピヨ太君を起こす


の繰り返しです。

ここでポイントとなるのは

ピヨ太君が最初から起きていたら、起こす処理をしない

です。

最初にやっているのが「ピヨ太君は寝てるかな?」の判定ですからね。
ピヨ太君がすでに起きていたら、起こす処理に入りません。

これがwhile文です。
次にdo~while文を見てみます。

do~while文の書き方は

do{
 ピヨ太君を起こす
}while(ピヨ太君は寝ている?);


です。

上から見ていきましょう。
最初に来るのは

do{

……ですが「やれ!」っていうだけなので無視して

ピヨ太君を起こす

です。
次が

}while(ピヨ太君は寝ている?);

です。

あとはピヨ太君が起きるまで

ピヨ太君を起こす
while(ピヨ太君は寝ている?){
ピヨ太君を起こす
while(ピヨ太君は寝ている?){

と処理が繰り返されます。

まず

1.ピヨ太君を起こす

をやった後で

2.ピヨ太君が寝ているか?の判定
 ※寝ていれば3へ移動。起きていれば終わり
3.ピヨ太君を起こす


の繰り返しです。

ここでポイントとなるのは

ピヨ太君が最初から起きていても、起こす処理をする

です。

最初にやっているのが「ピヨ太君を起こす」ですからね。
寝ていようと起きていようと、取りあえず起こす処理に入ります。

これがwhile文とdo~while文の違いです。

while文:最初にやるのは条件判定
do~while文:最初にやるのは処理


であり

while文:条件次第では1回も処理をやらない
do~while文:最低1回は処理をやる


です。

なお、while文を使ってdo~while文と同じ動作をさせることは可能です。
例えば

ピヨ太君を起こす
while(ピヨ太君は寝ている?){
 ピヨ太君を起こす
}


と書けば

do{
 ピヨ太君を起こす
}while(ピヨ太君は寝ている?);


と書いたのと同じ動きをします。

image piyo2

一言でまとめるよ

まぁ「do~while文」って単語が出てきたら「プログラミングで繰り返し処理を書くときの構文なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク