トップ 一覧 検索 ヘルプ RSS ログイン

配列の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!! 第一章 Java プログラミングの基礎

!! 1-3. Javaプログラムの基礎

! 配列

配列とはなんでしょうか。分かりやすいように具体例を用いて説明します。

5人の学生の所持金を表示するプログラムを作ることを考えます。先ほどでてきた基本型変数を用いてプログラムを書くと次のようになるでしょう。

''Sample02.java''
 1.public class Sample02{
 2.	public static void main( String args[]){
 3.		int student1 = 8000;
 4.		int student2 = 9000;
 5.		int student3 = 400;
 6.		int student4 = 10000;
 7.		int student5 = 6400;
 8.		
 9.		System.out.println("Student1 = " + student1);
 10.		System.out.println("Student2 = " + student2);
 11.		System.out.println("Student3 = " + student3);
 12.		System.out.println("Student4 = " + student4);
 13.		System.out.println("Student5 = " + student5);
 14.	}
 15.}
{{pre num
public class Sample02{
    public static void main( String args[]){
        int student1 = 8000;
        int student2 = 9000;
        int student3 = 400;
        int student4 = 10000;
        int student5 = 6400;
 	
        System.out.println("Student1 = " + student1);
        System.out.println("Student2 = " + student2);
        System.out.println("Student3 = " + student3);
        System.out.println("Student4 = " + student4);
        System.out.println("Student5 = " + student5);
    }
}
}}

このプログラムのコンパイル、出力結果は次のようになります。

{{pre
 C:\jprogram>javac Sample02.java
 
 C:\jprogram>java Sample02
 Student1 = 8000
 Student2 = 9000
 Student3 = 400
 Student4 = 10000
 Student5 = 6400
 
 C:\jprogram>
}}

これはこれで良いのですが、たとえば実験データなどを扱うときにはデータ数が1000とか10000とかになることはザラです。そんなとき、変数を一つずつ定義し、一つずつprint文で表示させていてはとても大変です。こんなとき、配列は活躍します。上のプログラムを配列を用いて書き直してみましょう。

''Sample03.java''
 1.public class Sample03{
 2.    public static void main( String[] args){
 3.        // 配列変数の宣言
 4.        int[] student;
 5.        // 配列を初期化
 6.        student = new int[5];
 7.        // 配列要素への代入
 8.        student[0] = 8000;
 9.        student[1] = 9000;
 10.        student[2] = 400;
 11.        student[3] = 10000;
 12.        student[4] = 6400;
 13.        
 14.        for( int i=0; i < student.length; i++){
 15.            System.out.println( "student" + (i+1) + " = " + student[i]);
 16.        }
 17.    }
 18.}
{{pre num
public class Sample03{
    public static void main( String[] args){
        // 配列変数の宣言
        int[] student;
        // 配列を初期化
        student = new int[5];
        // 配列要素への代入
        student[0] = 8000;
        student[1] = 9000;
        student[2] = 400;
        student[3] = 10000;
        student[4] = 6400;
        
        for( int i=0; i < student.length; i++){
             System.out.println( "student" + (i+1) + " = " + student[i]);
        }
    }
}
}}

配列を使って書き直してみました。実行結果は先ほどと同じになります。Sample03.java を見てわかるように、配列にも「宣言」、「初期化」、「代入」があります。

6行目の初期化は、int型の要素を5個持つ配列を新たにつくりだしています。この時点では要素自体はまだ初期化されていません。7行目以降で、配列要素へ値の代入を行っています。注目すべきは、それぞれの学生の所持金を画面に出力している部分です。のちにページで紹介するfor文を使って、出力処理を簡略化しています。

Sample03.java では説明の都合上、宣言と初期化と代入をわけて書きましたが、3行目から12行目をまとめて次のようにかくこともできます。

 int[] student = {8000, 9000, 400, 10000, 6400};

配列を使うとプログラムが簡潔に書けるようになりますね。

ところで14行目の繰り返し処理のところで、student.length という記述があります。student.length には配列の長さが格納されています。配列名.length でその配列の長さを得ることができます。