中間値を見つける

C:\DATA\Java2\Dos>java Mdl
中間の値は: 3
 -- Press any key to exit (Input "c" to continue) --
三個の中から中間の値を見つけて印字します。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. メモ帳などでタイプして Mdl.java の名前で保存して下さい。
    class Mdl
    {   public static void main(String args[])
        {   int    val1,val2,val3;
            val1= 1;
            val2= 5;
            val3= 3;
            if (val1>val2)
                if (val1<val3)
                    System.out.println("中間の値は: " + val1);
                else    // val1 が最大
                    if (val2>val3)
                        System.out.println("中間の値は: " + val2);
                    else
                        System.out.println("中間の値は: " + val3);
            else
                if (val1>val3)
                    System.out.println("中間の値は: " + val1);
                else    // val1 が最小
                    if (val2<val3)
                        System.out.println("中間の値は: " + val2);
                    else
                        System.out.println("中間の値は: " + val3);
        }
    }
    
  2. Mdl.java をコンパイルして class オブジェクトを実行して下さい。
    コンパイルの詳細は Java を動かす を参照して下さい。
  3. ページ先頭の画面が表示されたら完成です。
    中間の値は: 3

プログラムの説明

  1. val1, val2, val3 に何らかの値を格納します。
  2. val1 が val2 より大きくて val3 より小さいときは val1 が中間値です。
    (val1 > val2) && (val1 < val3)
        if (val1>val2)
            if (val1<val3)
                System.out.println("中間の値は: " + val1);
        
  3. val1 が val2 より大きくて val3 より小さくない(>=)ときは val1 が最大値です。
    (val1 > val2) && (val1 >= val3)
    val1 が最大値の場合は、残り2個の大きいほうが中間値になります。
            else    // val1 が最大
                if (val2>val3)
                    System.out.println("中間の値は: " + val2);
                else
                    System.out.println("中間の値は: " + val3);
        
  4. val1 が val2 より大きくなくて(<=)て val3 より大きいときは val1 が中間値です。
    (val1 <= val2) && (val1 > val3)
        else
            if (val1>val3)
                System.out.println("中間の値は: " + val1);
        
  5. val1 が val2 より大きくなくて(<=)て val3 より大きくない(<=)ときは val1 が最小値です。
    (val1 <= val2) && (val1 <= val3)
    val1 が最小値の場合は、残り2個の小さいほうが中間値になります。
            else    // val1 が最小
                if (val2<val3)
                    System.out.println("中間の値は: " + val2);
                else
                    System.out.println("中間の値は: " + val3);
        
  6. プログラムのロジックは「論理を整理」して、「間違いが入り込む余地が無いように」組み立てることが重要です。
    とは言っても正しく組んだつもりのプログラムが、思い通りに動かないことは常ですが。 (^_^;)

【演習】

プログラムを動かすだけで無く、フローチャートを書いて比較の組み合わせと論理の構成を理解して下さい。

超初心者のプログラム入門(Java2)