Top/マニュアル/基本/配列
  トップページへ   [ 一覧 | 検索 | 最終更新 ]   [ 差分 | 履歴 ]

#navi(マニュアル/基本)

*配列 [#f9196e2d]

#contents

*例 [#k73afd0e]

配列は、変数の集まりみたいなものです。~

ただの変数だと

#code(aya,nooutline,nolink,nonumber){{
 _a = 1
 _b = 2
 _c = 3
 _d = 4
 _e = 5
 
 _sum = _a + _b + _c + _d + _e;
}}

となりますが、配列だと

#code(aya,nooutline,nolink,nonumber){{
 _a = (1,2,3,4,5);
 
 _sum = _a[0] + _a[1] + _a[2] + _a[3] + _a[4];
}}

とかかけます。(0から始まっているので、最後が4なことにちょっと注意)

配列は繰り返しと組み合わせることで、真の威力を発揮します。~
先ほどのように、_a[0], _a[1], _a[2], ・・・と書かずに、以下のようにもかけます。

#code(aya,nooutline,nolink,nonumber){{
 _a = (1,2,3,4,5);
 
 _sum = 0;
 for _i = 0 ; _i < 5 ; i++
 {
   _sum += _a[_i];
 }
}}

_a[0], _a[1], _a[2],・・・の代わりに、変数の _i を使っても、_aのそれぞれの値を取得できます。~
_i の中身は for の中で、5未満の時、1 づつ足されていくので、順に_a[0], _a[1], _a[2]・・・と見ていくことになります。 

*もうちょっと例 [#p84565a5]
上の例だと、あらかじめ配列の大きさが「5」であって、~
そこで終わっていることがわかっていないと書けませんが、~
以下のようにすることで、配列の大きさに関係なく、記述することができるようになります。

#code(aya,nooutline,nolink,nonumber){{
 _a = (1,2,3,4,5);
 
 _sum = 0;
 for _i = 0 ; _i < ARRAYSIZE(_a) ; _i++
 {
   _sum += _a[_i];
 }
}}

[[ARRAYSIZE()>http://emily.shillest.net/ayaya/index.php?%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%2F%E9%96%A2%E6%95%B0%2FARRAYSIZE&word=ARRAYSIZE]]は、_aの配列の大きさを判定して、「5」を返します。~
_aは配列であれば、大きさがなんであってもかまわないことになります。~

配列には、文字も入ります。

#code(aya,nooutline,nolink,nonumber){{
 _sweets = ("プリン", "チョコレート", "クレープ", "甘口いちごスパ")
 _talk= "";
 for _i = 0 ; _i < ARRAYSIZE(_sweets) ; _i++
 {
   _talk += _sweets[_i] + "に";
 }
 "\1\s[10]\0\s[0]" + _talk + "・・・今日は全部食べちゃうよ!\1なんかまざっとる!\e";
}}

*さらに一声 [#tf7429c8]
foreach楽です。_i = 0 も ARRAYSIZE() も _i++もいりません。~
かわりに、_a[_i]に当たるもの(ここでは_var)を書けばOKです。

#code(aya,nooutline,nolink,nonumber){{
 _a = (1,2,3,4,5);
 
 _sum = 0;
 foreach _a ; _var
 {
   _sum += _var;
 }
}}

_varには、_aの中身が順に入ってきます。~
配列の最後までいくと、自動的に終わります。

#navi(マニュアル/基本)