たくさんの変数を一度に使うときには「配列変数」が便利です。配列変数を使うとインデックス(要素番号)を使って変数にアクセスできます。前に「変数」は値を入れる箱のようなものに例えましたが、配列変数は仕切りがあってたくさんの値を入れることができる箱と言えます。
もし、配列変数を使わないで、国語のテストの成績の合計点を計算するプログラムを作るとこんな感じです。
これを実行すると、362が表示されます。ただ、これだと、合計点を計算するのが大変です。配列変数を使うとこんな感じになります。
どうでしょうか。『変数名@番号』で別々の変数にアクセスできるので、一度にたくさんのデータを扱うのが楽になります。また、配列変数を使うと、番号を指定して変数にアクセスしたり、合計や平均を計算することができます。
もう少しゆっくり実行してみたい方は以下のプログラムを実行して動きを確認しましょう!
なお、配列変数は以下の書式で使います。
[書式] 配列変数の初期化 変数=[ 値0, 値1, 値2, 値3, ... ] [書式] 配列変数の個別要素に値を代入 変数[番号] = 値 変数@番号 = 値 [書式] 配列変数の参照 変数[番号]を表示 変数@番号を表示
簡単な例で見てみましょう。なお、配列変数の最初の要素のインデックス番号は、0から始まるので注意が必要です。
ところで最初に点数の合計プログラムを紹介しました。「ちょっと待ってください。上のプログラムがよく分からないんです。どうなっているんですか?」という方もいることでしょう。
簡単な配列変数の書式を確認したので、それぞれがどうなっているのか確認しながら実行してみましょう。
上のプログラムは、実行の途中に、実行経過を示すために『表示』を追加しました。繰り返しの状態がどうなっているのかを分かりやすく表示しながら実行します。
私もはじめてプログラムを習ったときは、これがどうしてうまく動くのか分からなくてずいぶん悩みました。点数を一人分増やしてみたり、実行するときに表示されるものを変えてみたりしてじっくり研究してみてください。
配列変数を初期化するには[0,1,2,3]のように記述するのが一般的ですが、文字列で与えられたデータを配列に変換したい場合も多くあります。そんな時に使えるのが『区切る』関数です。
逆に配列変数を文字列に変換したい場合もあります。その場合に使えるのが『配列結合』です。
これを実行すると、配列変数の各要素を「,」で結合して「0,1,2,3,4」と表示します。
なでしこには、配列変数を便利に扱うための命令がいくつか用意されています。ここでは、「配列数値ソート」という命令を取り上げようと思います。
「配列数値ソート」を使うと、配列変数の中にある値を数値順に並び替えてくれるという機能を持っています。ちょっと使ってみましょう。
プログラムを実行すると点数を小さい順に並び替えて「25,30,35,50,80」と表示します。
配列変数は『変数@番号』というふうに使いますが、『変数[番号]』というように[ .. ]で番号を囲う書き方もできます。C言語など、他のプログラム言語では配列変数を『変数[番号]』と書きますので、なでしこでも同じように書けるようになっています。
自由にプログラムを書いて動作を試してみよう!