初心者のためのC#プログラミング本格入門33 - 配列の使い方を覚えよう
前回「1 + 2 + 3 」の様な計算式にある複数の値を取り出す方法を解説しました。ここで一つの疑問が浮かびます。取り出した複数の値はどうすればよいのでしょうか?数が事前に分からないのですから、value1、value2、value3・・・のように変数を用意するのは大変です。一応「100個まで」というふうに条件を決めれば可能なのですが、それを扱うプログラムは大変面倒です。
この様にいくつかの値を扱う状況下では配列は便利です。以前、文字列は文字から構成される事をお話ししました。配列を使えばそれと同様に、複数の数値を扱えるようになります。
早速、配列の使用方法を示したサンプルプログラムを見てみましょう。
static void Main()
{
//値を取得
string inputValue = " 0 + 1 + 2 + 3 + 4 + 5 ";
string tmp = inputValue;
bool loopFlag = true;
int[] values = new int[ 100 ];
int count = 0;
do
{
System.Tuple<bool, int, string> value = TryValue( tmp );
loopFlag = value.Item1;
if ( loopFlag == true )
{
++count;
int index = count - 1;
values[ index ] = value.Item2;
tmp = value.Item3;
}
} while ( loopFlag == true );
//取得した値を表示
string message = "文字列【" +
inputValue + "】に含まれる数字は";
System.Console.WriteLine( message );
for ( int i = 0; i < count; i++ )
{
System.Console.Write( values[ i ] + " " );
}
System.Console.WriteLine( "です。" );
}
内容は前回のサンプルプログラムと同様です。ですが、配列を使用する事により、値を取得する処理と表示する処理を別に分ける事が出来ました。些細な違いだと思うでしょうが、C#プログラミング上では大きな違いです。配列はプログラミングに於いて重要な要素なのです。なお、GetValueメソッドをTryValueに改名しているので注意して下さい。では、配列の使い方を詳しく見てみましょう。配列変数を使うためには、先ず配列の変数を宣言しなくてはなりません。
型名[] 変数名 = new 型名[ 格納できる値の数 ];
int[] values = new int[ 100 ];
上記のプログラムは「数値を100個入れる変数を用意する」という意味です。「リンゴが12個入る箱を用意するよ」というふうに考えれば分かりやすいと思います。初心者の方はこの文法を厳密に考えず、日常的な感覚で捉えた方が覚えやすいと思います。配列変数(箱)を用意したら後は使うだけです。使い方は簡単。
変数名[ 位置 ]
values[ i ]
というふうに鍵括弧内に位置を指定すれば、値の取り出し/値の格納ができます。これは直感的で分かりやすいと思います。ただし、一つ注意するべき点があります。それは、配列の位置は0から数えるというルールです。普通の人は「1、2、3」というふうに1から数えます。ですが、C#は「0、1、2、3」というふうに0から数えます。ですから、values[ 100 ]と指定するとエラー(間違い)になります。
以上で今回の記事は終わりです。次回、今回学んだ事を活かして「自由に計算式を指定して計算するプログラム」を強化します。