[過去ログ] 【3Dゲームエンジン】Unity質問スレッド32 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
458: 2017/11/28(火)19:44 ID:jdFfrrRm(1/5) AAS
はい、クソ野郎の皆さんこんばんは
第6回目の講義は変数の集合体である「配列」についての勉強となります。
下のようなプログラムがあったとします。
---例---
string mes0 = "よう。ここは武器屋だ";
string mes1 = "用件はなんだ";
Debug.Log( mes0 );
--------
これは「よう。ここは武器屋だ」と表示されます。
"Debug.Log( mes1 );"にすると「用件はなんだ」と表示されます。
配列を使用すると下のようになります
---例---
string[] mes = new string[2]{ "よう。ここは武器屋だ", "用件はなんだ"};
Debug.Log( mes[0] );
--------
最初のプログラムと書き方は変わりましたが結果は同じで「よう。ここは武器屋だ」と表示されます。
配列は複数個必要になりそうな変数を1つにまとめて扱いやすくする物です。
「mes0、mes1、mes2、mes3・・・・mes104」のように
変数を1個ずつ宣言していくのは無駄です
配列を上手に活用することでプログラムをスッキリと見やすくまとめる事ができます。
459: 2017/11/28(火)20:06 ID:jdFfrrRm(2/5) AAS
先程は下のように配列を作りました
---例---
string[] mes = new string[2]{ "よう。ここは武器屋だ", "用件はなんだ"};
--------
配列を2つしか作成していないので"mes[2]"という存在しない物を使おうとするとエラーになります。
"mes[0]"の"0"部分を「配列の添え字」と呼びます。
添え字は1からではなく0からスタートするのでご注意を。
例えば配列が3個ある時は1〜3ではなく0〜2です。
配列の作り方(宣言)と値の入れ方(初期化)は色々方法があります。
それらについて説明します。
---例1---
string[] mes = new string[]{ "よう。ここは武器屋だ", "用件はなんだ"};
--------
このように配列を何個作るか省略もできます。
この場合勝手に2つ作られこちらの方が便利です。
---例2---
string[] mes = new string[2]; //この時点では2個の"mes"が作られているだけで中身はなし。
mes[0] = "よう。ここは武器屋だ"; //作ったmes配列に値を入れている(初期化)
mes[1] = "用件はなんだ";
--------
これは配列の宣言と作成、初期化を別々に分けた例です
---例3---
string[] mes; //宣言の時に配列は作らず…
mes = new string[2]; //ここで配列の実態を作成
mes[0] = "よう。ここは武器屋だ"; //作ったmes配列に値を入れている(初期化)
mes[1] = "用件はなんだ";
--------
461(2): 2017/11/28(火)20:15 ID:jdFfrrRm(3/5) AAS
続きです
---例4---
string[] mes;
mes = new string[]{ "よう。ここは武器屋だ", "用件はなんだ"};
--------
---例3---
string[] mes = { "よう。ここは武器屋だ", "用件はなんだ"};
--------
これが一番簡単な宣言と初期化の仕方ですが宣言と同時の時にしか使用できないという条件付きです。
どういう事かと言うと例4のように
---ダメな例---
string[] mes;
mes = { "よう。ここは武器屋だ", "用件はなんだ"};
--------
こういった使い方ができません。
このように宣言と初期化の方法は色々ありますが
自分にあった方法を使うとよいでしょう。
基本的には例2と例3をよく使うことになるかと思います。
次の例は配列が何個宣言されているのか知る方法です。
---例---
string[] mes = { "A", "B", "C", "D" }
Debug.Log("何個ある?=" + mes.Length);
--------
配列を4つ作成しているので「何個ある?=4」と表示されます。この「Length」は後々出てくる「ループ制御(for)」でよく使用しますので覚えておいて損はないでしょう。
462(1): 2017/11/28(火)20:33 ID:jdFfrrRm(4/5) AAS
作成した配列は
プログラム終了時、又は、システムが不要と判断した時に勝手に削除(解放)してくれるので
基本的に作りっぱなしで大丈夫です。
律儀に手動で削除や解放をする必要はありません。
ですが手動で削除したい場面に出くわす時もあり
その場合は下のように"null"を入れると削除できます。
--例--
string[] mes = {"A","B","C","D"};
Debug.Log( mes.Length ); // 「4」と表示される
mes = null; // 配列を解放
Debug.Log( mes.Length ); // 配列は解放され存在していないのでここでエラーになる
------
今回は以上だクソども
463(2): 2017/11/28(火)20:41 ID:jdFfrrRm(5/5) AAS
ミスを発見だクソども
>>461の
---例3---
string[] mes = { "よう。ここは武器屋だ", "用件はなんだ"};
--------
は「例3」ではなく「例5」だ。
よってその下の説明は
(×間違い×)
「基本的には例2と例3をよく使うことになるかと思います。」
(〇正しい〇)
「基本的には例2と例5をよく使うことになるかと思います。」
となる。
悪かったなこのやろう。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.032s