iが1から5の間、つまり5回分ループ回数の表示を行うプログラムです。}内の命令文を繰り返すようなプログラムになっています。}の下のプログラムに移動します。あるのでこのままプログラムは終了します。因みに7行目のi++;という命令は変数iに1を足す。いう命令で、この++をインクリメント演算子といいます。逆の--というのもあってこれはデクリメント演算子といいます。今、上のプログラムと下のプログラムは同じだという説明をしました。whileとdo~while、違うものを使っているはずなのに同じになるなんておかしくありませんか?同じになるならなぜ2つも同じものがあるのだろう。これにはちょっと訳がありまして、この二つにある違いがあるのですが、このプログラムでは、その違いが出力結果に表れないのです。違いを出すにはどうするか、こうすればでてきてくれますよ。i;i=10;while(i<=5){printf("%d回目のループです。i;i=10;do{printf("%d回目のループです。0;}この2つのプログラム、どこが変わったかといいますと、4行目。i=1;がi=10;に変わっています。どちらの条件式も満たさない、つまり当てはまらないようなiの値をあらかじめ示したという訳です。この場合、上のプログラムの実行結果はつまり何も実行されないのですが、下のプログラムの場合、このように出力されます。10回目のループです。条件に当てはまっていないのに条件文内のプログラムが1回だけ実行されています。これの原因は条件を調べるタイミングが大いに関係しています。これがwhile文の構成です。最初に条件を確認し、条件が成立するなら、下の条件文を実行し、赤矢印を通って条件の確認に戻ります。この時、条件が不成立になった時は青矢印を通って条件の外の文にジャンプします。これがwhile文です。ところがdo~while文はこのようになっています。条件が成立すれば赤矢印のように条件内の文の最初に飛びます。不成立の場合は青矢印のようにそのまま下の文を実行します。do~while文はwhile文と違い、条件がどうであろうと、最低一回は必ず条件内の文を実行するのです。これが2つの違い、先程のプログラムの出力結果の違いの訳です。これがwhile文とdo~while文です。while文の使い道としては、こんなのがあります。main(void){while(1){printf("お腹がすきました。0;}このプログラムはお腹がすきました。