解説
プログラミングでは、人間が扱えないような複雑な計算をしたり、大量のデータを扱ったりします。そういった「多くの値を持つデータを扱う」際に重要になるのが、「配列」という概念です。
配列は、いくつもの値をまとめて、1つの変数で表現する方法の一つです。例えば、生徒の成績を扱うような場合に、生徒1人ずつに変数を作るのではなく、生徒をひとまとめにした変数を作ります。
この違いを、JavaScritを例にとって示してみます。
// 個別の変数で扱うのではなく…… var seito0 = 100; var seito1 = 75; var seito2 = 64; : var seito29 = 85; // 配列として、1つの変数で表す var some_seito = new Array(30); // 30個の値を持つ配列を宣言 some_seito[0] = 100; some_seito[1] = 75; some_seito[2] = 64; : some_seito[29] = 85; // 変数some_seitoの中には「100, 75, 64, … 85」という値が入っている。
配列は、内部に複数の値を持ちます。そのそれぞれの要素は「[ ]」を利用して参照します。「[0]」とすることで、配列内の0番目の要素を参照できます。「[1]」とすることで配列内の1番目の要素を、「[2]」とすることで配列内の2番目の要素を参照できます。配列内の要素は、0から順番に数えて「要素数-1」までの整数で参照します。
この「[ ]」の部分を添え字と呼びます。
配列[0] ← 0番目の値を参照 配列[1] ← 1番目の値を参照 配列[2] ← 2番目の値を参照 : 配列[29] ← 29番目の値を参照
要素数の範囲外の整数を添え字に指定した場合の挙動は、プログラミング言語によって違います。要素数以上の値を指定した場合は、以下の2つのケースがあります。
- エラーになる(存在しない要素の位置を参照することはできないので、エラーと判定する)
- 配列の要素数が自動的に増える(存在しない要素の位置を指定した場合は、エラーにならないように、その位置まで要素数を自動で増やす)
また、マイナスの値を指定した場合の挙動も、プログラミング言語によって違います。
要素内に入れる値についても、プログラミング言語によって仕様が違います。数値や文字列のような、同じ種類の値しか入れられないプログラミング言語もあれば、何でも入れられるプログラミング言語もあります。詳しくは、使用するプログラミング言語の仕様を調べてください。
各プログラミング言語では、配列の要素数を取得する方法が用意されています。JavaScriptの場合は、変数の後に「.length」と書くことで取り出せます。この方法も、プログラミング言語によって異なります。
// 要素数の取り出し(JavaScriptの場合) var some_seito = new Array(30); // 30個の値を持つ配列を宣言 var ninnzuu = some_seito.length;
配列は、今後で出てくる「ループ処理」と組み合わせることで威力を発揮します。大量のデータに対して、同じような処理を連続的に与えていくことが可能です。
ループ処理の説明はまだですが、どういった場面で、配列が使えるか挙げておきます。
- 多くの人の成績や身長、体重といったデータの平均や分布を調べる
- 各地域の統計データを並べ替えて、順位を付ける
- 毎日の売り上げのデータを1か月分持ち、指定した日の情報を見たり、合計値を出したりする
- 画像の画素(1ドットずつの色のデータ)を連続的に処理して、フィルターを掛ける
サンプル
配列を使った処理を、JavaScriptで簡単に書いてみます。
<html> <head> <title>「配列」のサンプル</title> </head> <body> <pre><script type="text/javascript"> var some_seito = new Array(8); // 8個の値を持つ配列を宣言 some_seito[0] = 100; some_seito[1] = 75; some_seito[2] = 43; some_seito[3] = 79; some_seito[4] = 54; some_seito[5] = 98; some_seito[6] = 83; some_seito[7] = 31; document.writeln("配列の要素数 : " + some_seito.length); document.writeln("0番目の要素 : " + some_seito[0]); document.writeln("1番目の要素 : " + some_seito[1]); document.writeln("7番目の要素 : " + some_seito[7]); document.writeln("--------------------"); document.writeln("● 要素数以上を参照"); document.writeln("8番目の要素 : " + some_seito[9]); // 出力される「undefined」は「未定義」「確定していない」という意味 document.writeln("--------------------"); document.writeln("● 要素数以上に値を入れた後に参照"); some_seito[8] = 88; document.writeln("8番目の要素 : " + some_seito[8]); document.writeln("配列の要素数 : " + some_seito.length); </script></pre> </body> </html>
配列の要素数 : 8 0番目の要素 : 100 1番目の要素 : 75 7番目の要素 : 31 -------------------- ● 要素数以上を参照 8番目の要素 : undefined -------------------- ● 要素数以上に値を入れた後に参照 8番目の要素 : 88 配列の要素数 : 9