#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(マニュアル/基本)