目指すことは、沢山のラベルがフォーム内を動き回って、それらをすべてマウス操作で消すことである。ここまでで、ラベルを1つ動かして、マウスを重ねると消えるプログラムを作成した。次は、複数のラベルを動かす方法を学びながら、配列と、最後のミソである繰り返し処理を学ぶ。
ここでマスターしたいこと
- 配列の概念
- 配列の使い方
- 3つのラベルを動かす
配列とは
ラベルを10個動かしたい場合は、10個分のvxとvyが必要であるが、それらを個別に定義するのは大変である。そこで利用するのが配列である。
通常の変数のイメージ
1つの変数に、1つのデータを記録できる。
配列のイメージ
1つの配列に、用意しただけのデータを記録できる。何番目のデータを読むかは、[]内の添え字(そえじ)で指定する。
配列の使い方
int型の配列を3個定義して、利用する例は以下の通り。
定義方法
- 変数と同様の書き方に[]を付けて定義する。
- データを記録する領域をnew構文で生成する。
int [] a = new int[3];
以上で、a[0]~a[2]までの3個の配列が使えるようになる。a[3]は使えないので注意!
データの代入方法
- 記録先を[]内に書く以外は、通常の変数と同じ。
a[0] = 0; a[1] = 10; a[2] = 20;
以上の例では、0番目に0、1番目に10、2番目に20を代入している。
データの利用方法
- 参照先を[]内に書く以外は、通常の変数と同じ。
MessageBox.Show(""+a[0]); MessageBox.Show(""+a[1]); MessageBox.Show(""+a[2]);
演習
1つの宣言で複数のデータを扱うことができるようになった。これを利用して、ラベルを3つに増やしてみよう。
手順
- ifで2つ以上の条件を判定するの演習で作成したプロジェクトを開く。
- フォームに、Labelを2つ追加する(label3とlabel4)。
- 変数vxとvyを定義するプログラム(⑤に追加したプログラム)を書き換えて、vxとvyが3つのデータを記録できる配列に変更する。
- ここで起動して、エラーを発生させる。
- エラー箇所のvxをvx[0]に、vyをvy[0]に置き換えて、エラーをなくす。
- ここまでで、これまでと同じようにlabel2が動くようになる。
- vx[0]とvy[0]に関連するプログラムをコピー&ペーストで3つに増やし、label3の制御にはvx[1]とvy[1]を、label4の制御にはvx[2]とvy[2]を利用するようにする。