① ループによる全要素の利用
カウンタ変数 i を0からインクリメントで要素数( scores.length メソッド)まで繰り返すことで配列の添え字を順に指定し、格納した要素に1つずつアクセスする
int[] scores = {10, 20, 30, 40, 50};
for(int i =0; i < scores.length; i++){
System.out.println(scores[i])
}
num [0] から num [4] まで順に表示される
要素数の増減に対して、記述は何ら変わることはない
② ループによる集計
int[] scores = {10, 20, 30, 40, 50};
int sum = 0;
for(int i =0; i < scores.length; i++){
sum += scores[i];
}
int avg = sum / score.length;
System.out.println("合計点:" + sum);
System.out.println("平均点:" + avg);
}
まず合計値の変数 sum を0で初期化し、インクリメントでカウンタ変数を1つずつ増やして要素1つずつ指定し、sum に足していく作業を要素数分( score.length )繰り返すことで、要素の合計を sum に入れる
要素の合計である変数 sum を要素数( score.length )で除し、変数 avg に入れることで、要素の平均値が取得できる
この他にも、ある条件と一致する要素の数を数える、"カウント集計"という処理にもよく使用される
③ 添え字に対応した情報の利用
0~3の整数がランダムに格納された5個の要素を持つ配列 x から、それぞれに対応したH,E,L,Oという文字で表示させたい場合
int[] x = new int[4];
for (int i = 0; i < x.length; i ++) {
x[i] = new java.util.Random().nextInt(4);
}
for(int i = 0; i < x.length; i ++) {
switch (x[i]){
case 0:
System.out.println("M");
break;
case 1:
System.out.println("A");
break;
case 2:
System.out.println("I");
break;
case 3:
System.out.println("N");
break;
}
}
for文でカウンタ変数を0~3まで繰り返し、x[ 0 ]~x[ 3 ]の要素にはランダムで0~3の値を格納する
その後、別のfor文でカウンタ変数を繰り返しながらswitch文で、要素 x [ 0 ]の値が 0 のとき' M '~ 3 のとき' N ' までを分岐で表示させ、x [ 3 ]まで繰り返し、文字を4つ表示させる
また、この switch 文の冗長な記述は
char[] y = {'M','A','I','N'};
System.out.println ( y[x[i]]);
という簡単な 2 行で書き換えられる
これは配列 x に対応する、A~Dまでの文字を格納する配列 y を初期化し、その [] の中に x [ i ] を入れてfor文で繰り返し、1つずつ y の要素に対応させている
例えばランダムに格納した x [ 0 ]の値が' 2 'だった時、出力されるのはy [ 2 ]となり、配列 y の要素に対応して ' I 'が表示される
↧