C言語 do while文でループ文に挑戦

プログラミング

 

前回はwhile文によるループ文を紹介しました。

while文によるループは単純で「ループに入るまえに条件式を確認して条件を満たしていればループ本文を実行し、その処理を条件を満たさなくなるまでループし続ける」というものでした。

 

これにより、同じ作業や似たような規則的作業を百回や数千回するとき、かなり単純なコードであらわすことができます。

 

今回はそのループ文の続き、do while文によるループを紹介していきます。といっても基本的な構造はwhile文と同じなので、while文を理解していればそこまで苦労しないでしょう。

 

do while文の書き方とwhile文との違い

 

それでは do while文の基本的な書き方を解説します。

 

上にあるdoという単語が見えますよね。これはdo文と言って簡単に言ってしまえば、「文をdo(実行)せよ」というものになります。なのでこの場合は「do文の直後にある文(while文)をじっこうする」つまり、ループ文を実行するということになります。

 

こう見ると、ループする文と条件式がある点では、while文とまったく同じと思う人もいるでしょう。しかし、do whileとwhileには一つの違いがあります。

 

それは、do while文は少なくとも必ず1回はループ本文を実行するいう点です。

 

while文が実行されると、まず最初に条件式を評価します。この時点で条件式を満たしていない場合はループ本文は実行されません。しかし、do while文ではまず最初にループ本文が実行されて、その後つまり2回目以降の実行のときに条件式が評価されます。

 

do while文は少なくとも1回以上ループ本文を実行したいときに使うループ文です。といっても実際にやってみないとわからない所もあると思うので、以下でdo while文の簡単なプログラム例を作りました。

 

do while文で奇数と偶数を見分ける

 

今回はdo while文で「奇数と偶数を見分けるプログラム」を作ってみましょう。ユーザーが入力する値が偶数か奇数かを表示して、ユーザーがやめたいと思ったときにループ文をぬけるようにします。

 

プログラムは以下の通りです。

 

実行結果は以下です。

 

OKですね。

今回はループ文をぬけるときに「やめるなら0、もう一度やるときは1」というようにしてあげて、好きな時にプログラムをやめられるようにしました。

 

ループ本文ではまず、ユーザーに変数ataiに整数を入力してもらいます。それをif文で評価して「2で割れれば偶数、そうでなければ奇数」という条件式で偶奇を判断します。

 

その後、先ほど書いたようにループをやめるやめないを選べるようにします。ユーザーに変数retryに0か1を入力してもらい、1ならwhileの条件式の(retyr==1)を満たしているのでそのまま続けられるようになります。

 

どうでしたか?

while文の条件式の評価を前にするか後にするかの違いだけなので、ループ文としてはそこまで難しくないと思います。もう一度いいますが、do while文はループ本文を少なくとも1回やりたいときによく使うループ文です。

では。

コメント