次のような目標があるとします。
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マイルの計算表示まで行えるように修正してみましょう。
←目標が得られるように修正してからクリックください。
(分からない場合もクリックください)
←わからない場合は、クリックして覚え、再びチャレンジしましょう。