解答例 - j1.lesson06.MaxMin

package j1.lesson06;

import java.io.*;

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

    /**
     * コンソールから0以上100以下の整数を繰り返し入力させ、
     * その範囲外の値が入力された際に繰り返しを終了し、
     * そこまでに入力された0以上100以下の値の中で最大のものと最小のものを表示するプログラム。
     @param args 無視される
     @throws IOException 入力時に例外が発生した場合
     */
    public static void main(String[] argsthrows IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        // input: 入力された値を保存する
        int input;

        // max: 最大値を保存する。範囲外の値(正当な入力より小さな値)で初期化
        // 正当な入力より大きな値で初期化すると変化しなくなるので注意
        int max = -1;
        
        // min: 最小値を保存する。範囲外の値(正当な入力より大きな値)で初期化
        // 正当な入力より小さな値で初期化すると変化しなくなるので注意
        int min = 101;

        System.out.print("値を入力してください:");
        input = Integer.parseInt(reader.readLine());

        // 入力が0以上100以下なら繰り返す
        while (<= input && input <= 100) {
        
            // 今までの最大値より大きければ最大として保存
            if (input > max) {
                max = input;
            }
            
            // 今までの最小値より小さければ最小として保存
            if (input < min) {
                min = input;
            }

            // 次の入力
            System.out.print("値を入力してください:");
            input = Integer.parseInt(reader.readLine());
        }
        
        // 最大値や最小値が初期値なら入力はなかった
        // if (min > 100) でも良い
        if (max < 0) {
            System.out.println("入力はありません");
        }
        
        // 一度でも最大/最小が変更されていたらOK
        else {
            System.out.println("最大は" + max);
            System.out.println("最小は" + min);
        }
    }
}