📚
ITスクールの授業8日目のまとめ2:配列(Array)とfor文の活用(例文重視)
前書き
前回では配列の概要についてまとめてみた。しかし、配列は説明にすると簡単に見えるが、実際活用してみようとすると意外と難しくて、活用できる範囲が幅広い。
特にfor文を通じて配列を扱うことが多い。今回は、配列を扱う練習および例文として、for文と配列を利用した簡単な例文をまとめてみる。
「配列名.length」を通じて、配列全体を確認する
配列の変数は参照型であり、変数に「.」を付けると、様々な機能を持っている変数やメソッドにアクセスすることができる。
このなかで、「.length」というものは配列の長さ(要素の数)を示す。元の意味で配列を長さを測ることにも使うが、for文で使うことで、配列の最初から最後までの条件式を作ることに使える。
次の例文を見よう。
char[] ch = {'H', 'a', 'p', 'p', 'y'}; //配列の要素が5つあるので、インデックスは0から4まである。=>
//(配列のインデックスは、0から始まる。)
for(int i = 0; i < ch.length; i++) {//lengthは要素の数で、最後のインデックスの数字はlengthから1を引いたことと同じである。
System.out.print(ch[i]);
}
//結果:"Happy"が出力。
次の例文は、配列の最初から最後まで回りながら、条件にあうコードを実行する例文である。
//配列の中で、負数の数を数えて出力してみよう。
int[] num = {1, 3, 5, -7, 9, -3, -8, -6, 11, 16, 8};
int minusCount = 0;
for(int i = 0; i < num.length; i++) {
System.out.print(num[i] + " ");
if(num[i] < 0) {
minusCount++;
}
}
//for文で配列を回りながら数えた負数の数を出力
System.out.println();
System.out.println("配列の中の負数を数は" + minusCount + "個です。");
配列全体を回って、最大の値と最小の値
今回は、プログラミングで一番基本的であると言える簡単なアルゴリズムを配列とfor文で作ってみる。
配列の中に入っている整数の要素の中で、一番大きい、もしくは小さい値を求めようとすればどうしたらいいのか?という問題である。
最初にこの問題に会ったとき、以外と難しくて印象深かった。実際のコードは簡単なので、下記の例文を見てみよう。
//整数の配列のなかで、要素も最大の値と最小の値を求めてみよう。
int[] num = {15, 22, 11, 27, 6};
int min = 999; // 配列の中で会う数字よりは大きい値にするべき!
//そうしないと、配列の最初の数字が変数に入らない危険がある!
int max = -999; //配列の中で会う数字よりは小さい値にするべき!
//そうしないと、配列の最初の数字が変数に入らない危険がある!
//最小の値を求める方法:配列を回りながら、今確認された値より小さい値があると、変数に続き続き値を入れておく。
for(int i = 0; i < num.length; i++) {
if(num[i] < min) {min = num[i];}
}
//最大の値を求める方法:配列を回りながら、今確認された値より大きい値があると、変数に続いて続いて入れておく。
for(int i = 0; i < num.length; i++) {
if(num[i] > max) {max = num[i];}
}
//配列を回るのが終わったら、入れておいた配列の中で1番大きい値を出力。
System.out.println("配列の中で1番小さい値 : " + min);
System.out.println("配列の中で1番大きい値 : " + max);
以上で、for文と配列を一緒に使って、配列の要素を回りながら求める結果を出す練習を「簡単」にしてみた。
配列についてまとめながら、上の例文より何倍も複雑な例文を何度も会うことになるが、とりあえずこれから出る例文を理解はできるようにするため、簡単にだけまとめておいた。
Discussion