配列を使うと複数の入力データを記憶しておくことができます。次のプログラムは10個整数を読み込み、それを配列に記憶しておき、入力された順番とは逆の順番で表示するプログラムです。
// 配列の例題 入力された順とは逆の順番で値を表示
import java.io.*;
import java.text.*;
class Ex_array_01 {
public static void main(String args[]){
// 変数宣言
int i, N;
int ID[] = new int[10];
String s;
Number Num;
DecimalFormat DF = new DecimalFormat();
BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));
System.out.println("入力されたデータを逆順で表示");
// データの入力
for (i = 0; i <= 9; i++){
System.out.print(i + "番目のデータを入力してください : ");
try {
s = BR.readLine();
Num = DF.parse(s);
N = Num.intValue();
}
catch (Exception e){ N = 0;}
ID[i] = N;
}
System.out.println("-------------------------------------------");
// データの出力
for(i = 9; i >= 0; i--){
System.out.println(i + "番目のデータは " + ID[i] + "です。");
}
}
}
配列を使うことでデータを蓄積できるのでデータを加工して得られた値と元のデータを比較することも可能になります。
次のプログラムは入力されたデータをいったん配列に記憶し、そのデータから合計と平均を求め、最後に各データと平均値との差を表示するものです。
// 配列の例題 入力データの合計、平均、平均との差
import java.io.*;
import java.text.*;
class Ex_array_02 {
public static void main(String args[]){
// 変数宣言
int i, N, Gokei;
int ID[] = new int[10];
double Heikin;
String s;
Number Num;
DecimalFormat DF = new DecimalFormat();
BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));
System.out.println("入力データの保存、合計、平均、平均との差\n");
// データの入力
for (i = 0; i <= 9; i++){
System.out.print((i + 1) + "個目のデータを入力してください :");
try {
s = BR.readLine();
Num = DF.parse(s);
N = Num.intValue();
}
catch (Exception e) {N = 0;}
ID[i] = N;
}
// 合計計算
Gokei = 0;
for (i = 0; i <= 9; i++){
Gokei += ID[i];
}
// 平均値算出
Heikin = Gokei / 10.0;
System.out.println("\n平均値は " + Heikin + "です。\n");
System.out.println("平均値と入力データの差を表示します。\n");
// 平均値と入力データの差
for (i = 0; i <= 9; i++){
System.out.println((i + 1) + "個目のデータは " + ID[i] + "\t差は " + (Heikin - ID[i]));
}
}
}
次のプログラムは配列にデータを入力しておき、その中から最大値を検出するものです。
// 配列の例題 最大値の検出
import java.io.*;
import java.text.*;
class Ex_array_03 {
public static void main(String args[]){
// 変数宣言
int i, Max, N;
int ID[] = new int[10];
String s;
Number Num;
DecimalFormat DF = new DecimalFormat();
BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));
System.out.println("配列を使った最大値検出");
// データの入力
for (i = 0; i <= 9; i++){
System.out.print((i + 1) + "個目のデータは? :");
try {
s = BR.readLine();
Num = DF.parse(s);
N = Num.intValue();
}
catch (Exception e){ N = 0; }
// 入力データの保存
ID[i] = N;
}
// 仮の最大値設定
Max = ID[0];
// 最大値の検出
for (i = 1; i <= 9; i++){
if (ID[i] > Max) {
Max = ID[i];
}
}
System.out.println("最大値は" + Max + "でした");
}
}