do 〜 whileの繰り返し 

繰り返し命令を使うと、短いプログラムでたくさんの計算ができる。

次のような目標があるとします。

5.000000マイルは、8.045000キロメートル
10.000000マイルは、16.090000キロメートル
15.000000マイルは、24.135000キロメートル

このプログラムは、次のように書けました

#include <stdio.h>

main()
{
	double mc = 1.609;	/* マイルをキロメートルに換算するため定数記憶用 */
	double mile = 5.0;	/* 変換対象のマイルデータ記憶用 */
	
	printf("%fマイルは、", mile);
	printf("%fキロメートル\n", mile * mc);
	mile = mile + 5.0;

	printf("%fマイルは、", mile);
	printf("%fキロメートル\n", mile * mc);
	mile = mile + 5.0;

	printf("%fマイルは、", mile);
	printf("%fキロメートル\n", mile * mc);
	mile = mile + 5.0;

}

薄い文字の部分は、太字部分をコピー貼り付けするだけで作られています。
このような場合、次の繰り返しを利用できます。


この『繰り返したい命令を書く範囲』の所に、上記のコピー元を書けばよいわけです。
ここで、条件をどう表現するか? がミソです。前述のプログラムであれば、判定したいのが マイル情報を記憶しているmileなので、 mileが 15.0以下であるかという判定で mile <= 15.0 と書き、 この繰り返しプログラム部分は次のようになります。

ここで、do { と } while (mile <= 15.0) ; の書き始めの桁位置を同じにし、 繰り返し対象が視覚的わかりやすするため、中を右にずらして揃える慣習をつけてください。

なお、評価対象の変数を <= の左に書いて、 この場合であれば 『変数mileが15.0以下か?』 と読みます。 
そして合っていれば、この繰り返し範囲を do{ 直後に戻って、再び実行するわけです。

 なお、 <= は、 関係演算子と言う一つ演算命令で、<と=の間にスペースがあってはいけません。
 実際には、合っている時に1の演算結果になり、合わない場合は0の演算結果になっています。 
 他の演算子と一緒に使うこともできます。

50マイルの計算表示まで行えるように修正してみましょう。

←目標が得られるように修正してからクリックください。  (分からない場合もクリックください)
わからない場合は、クリックして覚え、再びチャレンジしましょう。