配列の初期値

2010 年 4 月 30 日 金曜日  【 カテゴリー: Javaの基本


今回は配列の初期値についてみていきます。

変数の場合

public class sample01 {
   public static void main(String[] args) {
        int number;
        System.out.println(number);
   }
}

3行目で変数を宣言し値をいれる箱を準備しました。そして初期化(1回目の代入)をしないで4行目で変数の中身を表示させようとするとエラーになります。つまり変数では必ず宣言したら初期化する必要があります。
※eclipse によるエラー

Exception in thread "main" java.lang.Error: Unresolved compilation problem:

ローカル変数 number が初期化されていない可能性があります

配列の場合

public class sample01 {
    public static void main(String[] args) {
    	int[] array = new int[3];
        for(int x : array){
            System.out.print(x + ":");
        }
    }
}
0:0:0:

java049

3行目で配列変数arrayとしてint型の箱を3つ準備しました。そして各箱とも初期化(1回目の代入)をしないで5行目で中身を表示させます。結果をみるとエラーにならず全ての要素で「0」が表示されています。つまり配列では箱を準備した時点で既に初期値が入っています。この初期値はデータ型によって異なります。

初期値

public class sample01 {
    public static void main(String[] args) {
    	byte[]    a = new byte[1];
    	short[]   b = new short[1];
    	int[]     c = new int[1];
    	long[]    d = new long[1];
    	float[ ]  e = new float[1];
    	double[]  f = new double[1];
    	char[]    g = new char[1];
    	boolean[] h = new boolean[1];

    	System.out.println("byte:"    + a[0]);
    	System.out.println("short:"   + b[0]);
    	System.out.println("int:"     + c[0]);
    	System.out.println("long:"    + d[0]);
    	System.out.println("float:"   + e[0]);
    	System.out.println("double:"  + f[0]);
    	System.out.println("char:"    + g[0]);
    	System.out.println("boolean:" + h[0]);
    }
}
byte:0
short:0
int:0
long:0
float:0.0
double:0.0
char:
boolean:false

結果は上記のようになりました。整数型ならば「0」、浮動小数点型ならば「0.0」が初期値になっています。文字型の場合は何も表示されていませんが文字コード「\u0000」のNULL文字が代入されています。そして論理型では「false」が初期値になります。

データ型 初期値
byte , short , int , long 0
float , double 0.0
char null文字
boolean false

にほんブログ村 IT技術ブログ Webサイト構築へ
にほんブログ村
【WEBサイト構築・プログラムブログ】
ランキング参加中!よろしければ「クリック」お願いします。
にほんブログ村 IT技術ブログ プログラム・プログラマへ
にほんブログ村
2010 年 4 月 30 日 金曜日  【 カテゴリー: Javaの基本

コメントをどうぞ

※管理者による確認後に表示されます。表示までしばらくお待ちください。