次の例で説明します。
長さがmm(ミリ)を入力して、10mm以上なら cmの単位で表示し、1000mm以上なら mの単位で表示し、
1000000mm以上ならKmの単位で表示させる次の実行例のようなプログラムです。
ミリメートル>9 9.000000 mm 終了 |
ミリメートル>999 99.900000 cm 終了 |
ミリメートル>1000 1.000000 m 終了 |
ミリメートル>1000000 1.000000 km 終了 |
この場合の流れ図は、次のように書きます。
このプログラムは、次のように作れました。
#include <stdio.h> main() { double mm; /* ミリメートル記憶 */ printf("ミリメートル>"); scanf("%lf" , & mm ); if(mm < 10){ printf("%f mm\n", mm); } else { if(mm < 1000){ printf("%f cm\n", mm / 10); } else { if(mm < 1000000){ printf("%f m\n", mm / 1000); } else { printf("%f km\n", mm / 1000000); } } } printf("終了\n"); }
これは、正しい書き方の一つです。しかし、この書き方をすると、どんどん右へのインデントが大きくなり、 読み難くなります。このような場合は、{ }を無しにして、インデントを付けないで、 次のように書きます。その方が読みやすいプログラムになります。
#include <stdio.h> main() { double mm; /* ミリメートル記憶 */ printf("ミリメートル>"); scanf("%lf" , & mm ); if(mm < 10){ printf("%f mm\n", mm); } else if(mm < 1000){ printf("%f cm\n", mm / 10); } else if(mm < 1000000){ printf("%f m\n", mm / 1000); } else { printf("%f km\n", mm / 1000000); } printf("終了"); }
このような書き方は、前述で示した流れ図を、下のようにも書けるということと、似ています。
前述のプログラムも、そうですが、比較する順番を
書き間違えると、全く違う結果になってしまいます。
つまり、比較する順番が重要なわけです。