Java 入門

ホーム > Java の基本 > 変数、配列

変数、配列

スポンサーリンク

プリミティブ・データタイプ

Java では変数は型を宣言してから使います。例えば年齢をあらわす整数の変数 age を使うには、次のようにします。

int age;
age = 28;

Java では基本的なデータ型 (これを、プリミティブデータタイプ (primitive data types) といいます) として、 次の8種類のデータ型を定義しています。

データ型意味既定値
byte8ビットの符号付整数
-128 から 127 までを表します。
0
short16ビットの符号付整数
-32,768 から 32,767 までを表します。
0
int32ビットの符号付整数
-2,147,483,648 から 2,147,483,647 までを表します。
0
long64ビットの符号付整数
-9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 までを表します。
0L
float32ビットの浮動小数点値0.0f
double64ビットの倍精度浮動小数点値0.0d
booleantrue または false の値をとるfalse
char16ビットの Unicode 文字
\u0000 から \uFFFF までの値
'\u0000'

また、上表のように既定値も定義されています。

後ほど説明しますが、class からインスタンスを生成するときは new というキーワードでインスタンスを作ります。 プリミティブタイプを使うときは、new を使う必要はありません。

配列

配列 (array) とは、同じデータ型のデータを複数格納するコンテナです。配列内に格納できる要素数は固定です。 例えば、「5個の整数を格納する配列」 は次のように定義できます。

int[] a;     
a = new int[5];

配列内の要素には添え字 (インデックス) でアクセスできます。 要素内の1番目の要素はインデックス [0]、2番目の要素はインデックス [1]、・・・ のように、 n 番目の要素には [n-1] というインデックスでアクセスできます。

次のコード例では、5個の整数を格納できる整数の配列を用意し、 それに、1番目の要素から順に1、2、3、4、5 を格納し、 それを逆に、5、4、3、2、1 という風に順番にその要素の中身を出力します。

public class ArrayTest {

     public static void main(String[] args) {

          int[] a;
          
          a = new int[5];
          
          a[0] = 1;
          a[1] = 2;
          a[2] = 3;
          a[3] = 4;
          a[4] = 5;
          
          System.out.println( a[4] );
          System.out.println( a[3] );
          System.out.println( a[2] );
          System.out.println( a[1] );
          System.out.println( a[0] );
          
     }
     
}

実行結果は次のとおりです。

5
4
3
2
1

よくある間違いは、存在しない要素にアクセスしてしまうことです。例えば、配列の要素を5個用意すると、 インデックスは0から始まりますから、使えるインデックスは 0, 1, 2, 3, 4 の5個です。

例えば、上のコード例では a という名前の配列に5個の値を代入していますが、 存在しない6個目の要素 a[5] に値を格納してしまい、次のように書いたとします。

a[5] = 6; // 間違い!

このような誤ったコードを書いた場合、コンパイルはされるのですが、実行時に次のような例外が発生してしまいます。

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
        at ArrayTest.main(ArrayTest.java:15)

このようなメッセージが表示された場合、配列のインデックスに誤りがありますので、プログラムをデバッグしてください。

配列の宣言と初期化を同時に行う

次の書き方で、配列の宣言と初期化を同時に行うこともできます。

型 [] 変数名 = { 初期化データリスト};

この方法を使って、上のコードを書き換えると次のようになります。

public class ArrayTest {

     public static void main(String[] args) {

          int[] a = { 1, 2, 3, 4, 5 };
                    
          System.out.println( a[4] );
          System.out.println( a[3] );
          System.out.println( a[2] );
          System.out.println( a[1] );
          System.out.println( a[0] );
          
     }
     
}

配列に関するちょっと進んだ話題

その他、少し進んだ話題については次の資料をみてください.

スポンサーリンク
ホーム > Java の基本 > 変数、配列