解答例 - j1.lesson11basic.ArrayStatistics1

package j1.lesson11basic;

import java.io.*;

/**
 * 課題1111 - 解答例.
 @author java2005
 @version $Id: ArrayStatistics1_java.rps,v 1.1 2006/07/14 05:33:58 java2005 Exp $
 */
public class ArrayStatistics1 {

    /**
     * コンソールから実数型のデータを次々と入力し、総和と平均を表示するプログラム。
     * mainメソッドの動作を表す擬似コードは以下の通りである。
     <pre>
     * プログラム全体
     *     print &quot;データ個数を入力:&quot;
     *     dataSize = コンソール入力 (整数)
     *     if dataSize が0以下
     *         print &quot;データ個数は、1以上にして下さい。&quot;
     *         プログラムの終了
     *     data = 長さ dataSize の新しい配列 (double[])
     *     for i を  0 から dataSize - 1 まで
     *         print &quot;第&quot; + i + &quot;番目のデータを入力:&quot;
     *         data[i] = コンソール入力(実数)
     *     total = 0.0
     *     for i を 0 から dataSize - 1 まで
     *         total に data[i] を加える
     *     average = total / data の長さ
     *     print &quot;データの総和:&quot; + total
     *     print &quot;データの平均:&quot; + average
     </pre>
     @param args 無視される
     @throws IOException 入力時に例外が発生した場合
     */
    public static void main(String[] argsthrows IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        // データの個数を入力する
        System.out.print("データ個数を入力: ");
        int dataSize = Integer.parseInt(reader.readLine());
        if (dataSize <= 0) {
            System.out.print("データ個数は、1以上にして下さい。");
            return;
        }
        // データを入力する
        double[] data = new double[dataSize];
        for (int i = 0; i < data.length; i++) {
            System.out.print("第" + i + "番目のデータを入力: ");
            data[i= Double.parseDouble(reader.readLine());
        }
        // 総和を集計する
        double total = 0;
        for (int i = 0; i < data.length; i++) {
            total += data[i];
        }
        // 平均を計算する
        double average = 0;
        average = total / data.length;

        System.out.println("データの総和:" + total);
        System.out.println("データの平均:" + average);
    }
}