無理です、気力が持ちません!それだけではないぞ。CASEで、対応した変数を修正する、という形にしてもかなりの労力がかかるであろう。はぁはぁ......そ、そうですね。こんな時に、配列変数が役に立つのでは?うむ、その通りじゃ。我が弟子、配列変数についての学習は怠りないと見えるな。えーと、配列変数ってなんでしたっけ?はあっ!!(飛び蹴り)うわあっ。配列変数について復習しておくとしようぞ。配列変数とは、一つの変数をいくつもの部屋に区切って、それぞれごとに別々の値を入れられるようにしたものじゃ。あ、思い出してきたかも。それぞれの部屋は、添え字という数値で識別するんでしたっけ。この添え字は、いわば部屋番号のようなものと考えるがよかろう。ポイントとしては、この添え字には変数も使える、ということじゃ。2が入っている変数iを添え字に使った場合、2番の値を見たりすることができる。この変数iが1増えて3になった場合は、3番の値を見たり操作したりできるのだ。いうことは、For~Nextなどの繰り返しと組み合わせることで、大量のデータを処理することができそうですね!そういうことじゃ。次からは、その配列変数の使い方について説明していくことにしようぞ。】まず、変数と同じように、配列変数を使うにはDim文で定義する必要がある。Integer----------ここで注意するべきことが一つある。わかるかな???それは、配列の添え字は0からスタートするので、実際には配列の部屋数は添え字の最大よりも1多くなる、ということじゃ。例の場合だと、実際には0~5までの6つの部屋が作られるのだ。Javaでは配列の宣言の後に、配列の確保をする必要があったが、VB.NETではそんなことはない。上のDim文だけで全てOKじゃ。それと、昔のBASICとは違い、VB.NETのDim文には、書き方のバリエーションとして、配列を宣言すると同時に、初期値を入れてしまう書き方がある。その場合は、このように書くのじゃ。4}----------このように書いてやると、VB.NETは自動的に、値の数と同じだけの部屋を持つ配列変数を作り、この初期値を入れてくるのじゃ。配列変数の使い方は、いたって簡単。このように書けばいいだけじゃ。----------配列変数名(添え字)例:a(3)----------この添え字の部分には変数も使えるというのは先ほど話した通りじゃ。ゆえに、先ほどお主が言った通り、For~Nextと組み合わせて、こんな使い方もできるのだ。このように、多くのデータを、For~Nextなどの繰り返しと組み合わせることで、簡単に処理できるのが配列変数の強みじゃ。昔のBASICとは違い、VB.NETの配列には、色々と役立つ機能が内臓されておる。Clone?これは、ある配列をコピーして、全く別の配列を作るというものじゃ。コピーしてできた配列は、元の配列とは全く別の配列なので、コピーしてできた配列をいじっても、元の配列には何の影響もないのがポイントじゃ。Cloneはこのように使う。a.Clone----------これだけで済むのじゃ。簡単じゃろう?はいっ。これは配列の部屋数を自由自在を変えてしまう、というものじゃ。Redimはこのように書く。やってみたんですけど、Redimを使ったら、配列の中身が0になっちゃったんですが......。おぉ、それを忘れておったの。普通、Redimを使うと、その中身はクリアされてしまう。それを防ぐには、RedimのあとにPreserveを付ける必要があるのじゃ。配列変数名(添え字の新しい最大値)----------それでやってみよ。今度はちゃんと値が残るはずじゃ。おおっ、ほんとだ!次はLengthとGetLengthじゃ。これを使うと、その配列の部屋の数を取得することができる。2次元以上の多次元配列の場合、Lengthを使うと、全ての部屋数を合計して返してしまう。おっと、それを忘れておったな。多次元配列とは、複数の添え字を持つ配列のことじゃ。いうより、1次元配列は一棟の建物、2次元配列は数階建ての建物、3次元配列は数階建ての建物が複数集まった団地......と例えればイメージが伝わるかな?あー、わかる気がします。2次元配列の場合、Lengthはその建物(配列)の全ての部屋数を返して、GetLengthは指定した階の部屋の数を返す、というわけですね。うむ、そんな感じじゃ。このLengthとGetLengthはそれぞれ、次のように使う。]は省略してよいことを表しているぞ。最後に、IndexOfとLastIndexOfについて教えておくとしよう。これは、指定した値が入っている部屋を調べて教えてくれる、という代物じゃ。これはこのように使う。"ABC")→配列変数fの部屋の中から、"ABC"という文字列が格納されている部屋を探し、その添え字を取得する----------IndexOfとLastIndexOfとはどう違うのですか?うむ。IndexOfは配列の先頭から探す。LastIndexOfはその逆(つまり配列の最後)から探すのだ。わかりました!では、今月はここまで。次回は、VB.NETにおけるクラスについて説明していくぞ。Java道場を読んでおくことを勧める。いい年を過ごすのじゃぞ!!==========※次の更新は、『フリーソフトでゲームを作ろう!』の予定です。|この記事へのコメントコメントを書くコチラをクリックしてくださいSeesaaブログ。