LESSON 15 ・ 配列
配列とwhile
要素を更新する
let a = [65, 90, 85];
console.log(a[0]);
console.log(a[1]);
console.log(a[2]);
a[0] = 67;
console.log(a[0]);
a[0] = 67のように、インデックスを指定して特定の要素だけ更新することもできます。
ループですべての要素を処理する
let a = [65, 90, 85];
let i = 0;
while (i < 3) {
console.log(a[i]);
i += 1;
}
配列を使えばループと組み合わせて処理することができます。a[i]のように[ ]の中に変数を使うことができるので、ループで変数の値を1ずつ増やしながら処理することができるからです。
このiのように、ループの制御に使う変数をループ変数と呼ぶことがあります。ループ変数にはindexの頭文字を取ってよくiが使われます。
要素数に合わせて繰り返す
let a = [65, 90, 85];
console.log(a.length);
i < 3のように、人数をコード中にベタ書き(ハードコード)してしまうと、人数が増えたときにコードも修正しなければなりません。lengthを使えば配列の長さ(要素数)を得ることができます。この例では3が出力されます。
let a = [65, 90, 85];
let n = a.length;
let i = 0;
while (i < n) {
console.log(a[i]);
i += 1;
}
要素数を使えば、さっきのループのコードはこのように書き換えられます。
let a = [65, 90, 85];
let i = 0;
while (i < a.length) {
console.log(a[i]);
i += 1;
}
要素数を変数に代入せず、条件式に直接書くこともできます。
PRACTICE
演習問題
コードを自分で書いて実行してから、答えと解説を確認しましょう。
問題1
点数65、90、85をまとめた配列の最初の要素を70に更新し、更新後の値を表示してください。
答えと解説を見る
模範解答
let scores = [65, 90, 85];
scores[0] = 70;
console.log(scores[0]);
インデックス0を指定して代入すると、最初の要素だけを更新できます。
問題2
[4, 8, 12, 16]のすべての要素を、whileを使って順番に表示してください。繰り返す回数は要素数から求めてください。
答えと解説を見る
模範解答
let numbers = [4, 8, 12, 16];
let i = 0;
while (i < numbers.length) {
console.log(numbers[i]);
i += 1;
}
ループ変数iをインデックスとして使います。numbers.lengthまで繰り返すため、要素数を変えても同じコードで処理できます。
問題3
点数60、75、90をまとめた配列があります。whileを使って、すべての点数を5ずつ増やし、更新後の値を順番に表示してください。
答えと解説を見る
模範解答
let scores = [60, 75, 90];
let i = 0;
while (i < scores.length) {
scores[i] += 5;
console.log(scores[i]);
i += 1;
}
scores[i]を使うと、ループのたびに異なる要素を更新できます。表示される値は65、80、95です。