解答例 - j1.lesson03.Max3

package j1.lesson03;

import java.io.*;

/**
 * 課題0302 - 解答例.
 @author s.arakawa
 @version $Id: Max3_java.rps,v 1.1 2006/03/06 12:56:15 java2005 Exp $
 */
public class Max3 {

    /**
     * コンソールに3つの整数をそれぞれ入力させ、その最大値を表示するプログラム。
     @param args 無視される
     @throws IOException 入力中に例外が発生した場合
     */
    public static void main(String[] argsthrows IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("整数を入力(1):");
        int a = Integer.parseInt(reader.readLine());
        System.out.print("整数を入力(2):");
        int b = Integer.parseInt(reader.readLine());
        System.out.print("整数を入力(3):");
        int c = Integer.parseInt(reader.readLine());
        
        // 方針
        // 1. a と b のうち、どちらが大きいか判別する
        // 2. 判別結果によって場合分けを行う
        // 3a. (aの方が大きい場合) a と c を比較し、大きいものを出力
        // 3b. (aの方が大きくない場合) b と c を比較し、大きいものを出力

        // a と b のうちどちらが大きいか判別し、場合分け
        if (a > b) {
            // このブロック内では a の方が大きい
            // -> b は最大にならないので、もう考えなくて良い
            
            // a と c を比較し、大きいものを出力
            if (a > c) {
                // a の方が大きい
                System.out.println("最大の値は" + a);
            }
            else {
                // c のほうが大きい (または同じ)
                System.out.println("最大の値は" + c);
            }
        }
        else {
            // このブロック内では b の方が大きい (または同じ)
            // -> a は最大にならないので、もう考えなくて良い
            //    a == b のとき a も最大になりうるが、
            //    その場合は a を出力しても b を出力しても結果は同じだから無視する

            // b と c を比較し、大きいものを出力
            if (b > c) {
                // b の方が大きい
                System.out.println("最大の値は" + b);
            }
            else {
                // c のほうが大きい (または同じ)
                System.out.println("最大の値は" + c);
            }
        }
    }
}