配列
変数はひとつのデータを格納するものでしたが、複数のデータをまとめて扱うときに,便利なのが配列です。複数の値をひとまとまりとして名前(配列名)をつけ、1つの変数のようにして扱えます。配列の要素
配列中の個々のデータのことを配列の要素と呼びます。配列のそれぞれの要素は、配列名と添字を使って表します。添字とは配列の要素に番号をつけたもので、先頭が0で順にふられます。配列名に続いて[ ]を書き、その中に添字を書きます。
[0]の値 | [1]の値 | [2]の値 | [3]の値 | [4]の値 |
配列dataの最初の要素はdata[0]と表し、
配列dataの最後の要素はdata[4]と表します。
data[1]のように配列名と添字で表した配列の要素は、変数と同じように扱え、値を参照したり、演算の対象にしたり、値を代入したりできます。
data[0] = 123.4; data[1] = data[0] + 100;
配列を作る
配列を作る(データの保存領域を確保する)にはキーワードnewを使います。データ型 配列名[ ] = new データ型[ データの個数 ];float型のデータを5つ入れるための配列は次のように作ります。
float data[ ] = new float[5];次のように、配列名の宣言と配列の生成を別々に書いても同じです。
float data[ ]; data = new float[5];配列を作った時点で、各要素には0.0が入ります。
配列を作る時に、値を同時に指定することができます(これを配列の初期化といいます)。 newを使わず、中括弧{ }の間に、カンマで区切って値を指定します。中括弧の中の値の個数分の配列が生成されます。
float data[ ] = {0.01, 1.01, 2.01, 3.01, 4.01};
配列中のデータ数
配列の中のデータの個数は、配列名.lengthで知ることができます。配列の中のデータに対して、順に処理を行うような場合は、for文を使って繰返し処理を行うことがよくあります。何回処理を繰り返すのかを指定する時に、 配列の中のデータの個数が必要になります。 float型の配列の中の値の合計を計算するには、次のように書きます。
float sum = 0; float data[ ] = {0.01, 1.01, 2.01, 3.01, 4.01}; for(int i=0; i<data.length; i=i+1){ sum = sum + data[i]; } println("合計は" + sum);
オブジェクトの配列
上では、基本データ型のデータが入る配列を例に説明してきました。オブジェクトの配列でも、配列名の宣言、配列を作る(領域の確保)の方法は同じです。例えば、CircleButtonクラスのオブジェクトを8個入れる配列は次のように作ります。CircleButtonはラーニングトレイルの「音を使う」セクションで使ったボタンのクラスです。
CircleButton bu[]; bu = new CircleButton[];配列の領域を上のように作った後で、次にオブジェクトを生成し、配列の要素に代入します。
bu[0] = new CircleButton(40, height/2, 50, color(200, 0, 0)); bu[1] = new CircleButton(100, height/2, 50, color(200, 0, 0));数値の配列の場合、配列を作った時点で、値に0が入るのに対して、オブジェクトの配列の場合、何も入っておらず、「なし」を表す特別な値nullになっていますので、何も代入していない配列要素にアクセスしようとするとエラーになります。