Chapter 8:配列

まとめて管理

シューティングゲームなどで,100個の弾の座標を管理したいときに次のように変数を定義していては大変です.

int x1= 4 ,y1=54;
int x2=15 ,y2= 4;
int x3=26 ,y3=34;
...
int x99=23,y99=2;
int x100=3,y100=4;

そこで配列です.宣言は次のようにできます.

int x[]=new int [100];
int y[]=new int [100];
型名 変数名[]=new 型名 [要素数];

new 型名[要素数]を忘れないようにしましょう.

int a[]=new int [4];
a[0]=3;
a[1]=1;
a[2]=4;
a[3]=1;
print(a[2]);

これを図で表すと, 変数名[インデックス]で配列にアクセスができます.インデックスは0から(要素数-1)までの整数で指定します.

要素数が4の場合,a[0],a[1],a[2],a[3]の4つの要素が使える,という意味になります.a[4]は使えません(エラーになります). インデックスが0から始まることに注意です.

int a[]=new int [4];
a[0]=3;
a[1]=1;
a[2]=4;
a[3]=1;
for(int i=0;i<4;i++){
    a[i]=a[i]+1;
    println(a[i]);
}

配列は一度に処理をするのに非常に便利です(上の例だとすべてに1を加算している.) また,記録機能としても優秀です.

int a[]=new int [10];
int a[0]=1;
for(int i=1;i<10;i++)a[i]=a[i-1]*2;
for(int i=0;i<10;i++)println(a[i]);

演習8-1

フィボナッチ数列の第20項目はいくつか. ただし,フィボナッチ数列は,1,1,2,3,5,8,13,21,...のように初めの二項が1で,それ以降は前の二項の和となっている数列のことである.

解答

解答例:コードを書いてから答えをみよう!

演習8-1:6765

int a[]=new int [30];
a[1]=1;a[2]=1;
for(int i=3;i<=20;i++)a[i]=a[i-1]+a[i-2];
print(a[20]);