[第10回] 配列の使い方を学ぶ|Unityで学ぶC#入門
「Unityで学ぶC#入門」の連載第9回は「switch文を利用した条件分岐を学ぶ」でした。
第10回の今回は配列の使い方を学びます。
配列はゲーム開発はもちろん、そのほか様々なシステム開発に利用される基本的な技術です。
配列を利用すれば必要な情報をまとめて管理することができます。
配列とは
配列とは同じ型の複数の値を一つの変数として扱う仕組みです。
配列を利用することで、無駄に変数を増やすことなく複数の値を管理することができます。
変数の詳しい使用方法については以下記事をご参考ください。
参考記事)変数の使い方を学ぶ
↓配列イメージ
上記の図はint型の配列numbers[n]で、int型の値をn個管理することができる配列です。
このように複数の値を一つの変数宣言で管理することができるので、プログラムを簡潔にわかりやすく書くことができます。
注意するべき点は配列の一番最初の番号が0(ゼロ)であることです。
また、配列を実際にプログラムで使用する際には以下のように宣言して使用します。
1 |
変数型[] 変数名 = new 変数型[配列の数]; |
ここではこのようにすれば配列を生成できるということだけ覚えておいていただければ問題ありません。
先ほどの例であるnumbers配列を実際に宣言すると以下のようになります。
1 |
int[] numbers = new int[10]; |
この宣言によってint型の値を10個扱うことができる配列を作成することができます。
このように配列は便利でありながら、非常に簡単に使用することができます。
配列の使用例
実際に配列が使用されるシーンは様々です。
今回はstring型の配列namesを作成して特定の名前を発見したときに適当な処理を行うプログラムを作成します。
また、ここでは初期値を与えるときの宣言の仕方をご紹介します。
この処理を行うプログラムは以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour { //string型の配列namesを宣言 string[] names; // Start is called before the first frame update void Start() { //配列の値を代入 names = new string[] {"Ichiro","Jiro","Saburo","Shiro","Goro"}; //for文で全ての配列の中身を確認 //配列名.Lengthで配列の長さを取得 for( int i = 0 ; i < names.Length ; i++ ){ //if文の処理 if( names[i] == "Ichiro" ){ Debug.Log(names[i] + "は長男です"); } else if(names[i] == "Jiro"){ Debug.Log(names[i] + "は次男です"); } else if(names[i] == "Saburo"){ Debug.Log(names[i] + "は三男です"); } else if(names[i] == "Shiro"){ Debug.Log(names[i] + "は四男です"); } else if(names[i] == "Goro"){ Debug.Log(names[i] + "は五男です"); } else{ Debug.Log("彼は兄弟ではありません"); } } } } |
↓実行結果
プログラムについて解説していきます。
8行目ではstring型の配列namesを宣言しています。
1 |
string[] names; |
この状態では配列を使用することができません。実際に配列が使用するためにはnew演算子によって配列を作成する必要があります。
また、new演算子によって配列を作成する処理は別の行で行うことができます。
14行目では宣言したnamesの配列をnew演算子によって作成しています。
1 |
names = new string[] {"Ichiro","Jiro","Saburo","Shiro","Goro"}; |
また、「new string[] {代入したい値}」とすることで初期値を与えることができます。
初期値として代入したい値の数を参考して配列の長さを決定することができるため、[]の中に数値を記述していません。
18行目では配列の長さを取得して配列の中身を全て確認するループを作成しています。
1 |
for( int i = 0 ; i < names.Length ; i++ ){ |
配列は「配列名.Length」とすることで配列の長さを取得することができます。
このループの中で「配列名[ i ]」とすることで配列の全ての値にアクセスすることができます。
for文,if文の詳しい使用方法については以下記事をご参考ください。
参考記事)for文を利用したループを学ぶ
参考記事)if文を利用した条件分岐を学ぶ
まとめ
いかがでしたでしょうか。
今回はC#の配列の扱い方についてご紹介してきました。
配列は宣言方法は言語によって多少の差異はあるものの、プログラミングにおいて重要な考え方の一つです。
また、どのくらい値を管理するかわからないから、「保存する値の数を定義したくない!」という方もいらっしゃると思います。そのようなときに便利なものがリストです。本連載では第13回でリストについて詳しく解説しているので、是非ご一読ください。
参考記事) list(リスト)の基本的な使い方を学ぶ
続けて第11回の記事に読む方はこちらをクリック
他の回の記事について気になる方はこちらをクリック
この記事はいかがでしたか?
もし「参考になった」「面白かった」という場合は、応援シェアお願いします!