解答例 - j1.lesson05.ScoreAverage

package j1.lesson05;

import java.io.*;

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

    /**
     * コンソールから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;
        
        // total: 合計を保存する
        int total = 0;
        
        // count: 回数を保存する
        int count = 0;

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

        // 入力が0以上100以下なら繰り返す
        while (<= input && input <= 100) {
            
            // 0以上100以下の値が入力された回数をカウント
            count++;
            
            // 入力の合計に加算
            total += input;

            // 次の入力
            System.out.print("値を入力してください:");
            input = Integer.parseInt(reader.readLine());
        }
        
        // 一度も0以上100以下の値が入力されなかった
        if (count == 0) {
            System.out.println("入力はありません");
        }
        else {
            // 平均は 合計 / 個数
            // total を無理矢理 double 型に変換してやると、小数まで計算してくれる
            // total の手前に (double) と変換してやりたい型をつければよい
            System.out.println("平均は" ((double)total / count));
        }
    }
}