次の例で説明します。
長さが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("終了");
}
このような書き方は、前述で示した流れ図を、下のようにも書けるということと、似ています。
前述のプログラムも、そうですが、比較する順番を
書き間違えると、全く違う結果になってしまいます。
つまり、比較する順番が重要なわけです。