変数の初期化と変数への値の代入

変数に値を格納することを変数に値を代入するといいます。値を代入するには変数を宣言したあとで値を代入することもできますし、変数を宣言する時に同時に値を代入して初期化することもできます。ここでは Java で変数の初期化を行う方法、および変数に値を代入する方法について解説します。

(Last modified: )

変数に値を代入する

変数に値を格納することを変数に値を代入するといいます。書式は次の通りです。

変数 = 値;

「=」は代入演算子と呼ばれる演算子の一つです。「=」の右側に記述された値を左側に書かれた変数に代入します。左辺と右辺が等しいという意味ではありません。

例えば int 型の変数に整数の 10 を代入するには次のように記述します。

int num;
num = 10;

変数に値を代入するには、その前に変数が宣言されていなければなりません。宣言されていない変数に値を代入するとコンパイルエラーとなります。(変数の宣言については「変数を宣言する」を参照されてください)。

変数に値を代入すると、数値などの基本データ型の値は値そのものが格納されますが、配列やクラスのインスタンスを変数に格納する場合はデータそのものが格納されるのではなく、データが格納されている場所を表すアドレスが格納されます。

サンプルコード

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample6-1.java という名前で保存します。

class JSample6_1{
  public static void main(String[] args){
    int old;
    String name;

    old = 24;
    name = "Tarou Yamada";

    System.out.println(old);
    System.out.println(name);
  }
}

コンパイルを行います。

javac -encoding UTF-8 JSample6_1.java

その後で、次のように実行してください。

java JSample6_1

変数に値を代入する(1)

変数 old と変数 name をそれぞれ宣言したあと、変数に値を代入しました。そのあとで変数に格納されている値を画面に出力しました。

複数の変数にまとめて値を代入する

複数の変数に同じ値を代入する場合、多重代入という書式を使うことができます。

変数1 = 変数2 = 変数3 = 値;

変数1、 変数2、 変数3 にそれぞれ値を代入します。

例えば int 型の 3 つの変数に整数の 0 を代入するには次のように記述します。

int width, height, depth;
width = height = depth = 0;

一応このような書き方もできると覚えておいてください。

変数を初期化する

先ほどは変数を宣言したあとで変数に値を代入しました。宣言を行ったあとであれば任意のタイミングで変数に値を代入することができますが、変数を宣言すると同時に格納する値が分かっている場合は宣言と同時に値を代入することができます。書式は次の通りです。

データ型 変数名 = 値;

このように変数の宣言と同時に変数に値を代入することを変数の初期化といいます。

例えば int 型の変数を宣言すると同時に整数の 10 を代入して初期化するには次のように記述します。

int num = 10;

変数を初期化することで、変数に値が代入されていないのに変数を参照してしまうといったミスを防ぐことができます。

サンプルコード

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample6-2.java という名前で保存します。

class JSample6_2{
  public static void main(String[] args){
    int old = 24;
    String name = "Tarou Yamada";

    System.out.println(old);
    System.out.println(name);
  }
}

コンパイルを行います。

javac -encoding UTF-8 JSample6_2.java

その後で、次のように実行してください。

java JSample6_2

変数を初期化する(1)

変数 old と変数 name を宣言すると同時に値を代入しました。そのあとで変数に格納された値を画面に出力しました。

変数に別の値を代入する

変数に一度値を代入したあとで、別の値を代入しなおすことができます。変数に格納できる値は一つだけなので、新しい値を代入すると変数に格納されている値は最後に代入した値となります。

int num;

num = 10;  # 変数には 10 が格納
num = 32;  # 変数には 32 が格納

何度でも新しい値を代入することができます。

サンプルコード

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample6-3.java という名前で保存します。

class JSample6_3{
  public static void main(String[] args){
    int result;

    result = 84;
    System.out.println(result);

    result = 76;
    System.out.println(result);
  }
}

コンパイルを行います。

javac -encoding UTF-8 JSample6_3.java

その後で、次のように実行してください。

java JSample6_3

変数に別の値を代入する(1)

変数 result を宣言したあと変数に値を代入しました。そのあとで変数に格納された値を画面に出力しました。そして同じ変数に対して別の値を代入し、改めて変数に格納された値を画面に出力しました。

値が代入されていない変数を参照した場合

変数を宣言したあと、初期化や一度も値を代入していない状態で変数を参照するとコンパイル時にエラーとなります。次のサンプルをみてください。

int num;
System.out.println(num);

変数 num を宣言したあと、値を一度も代入しない状態で変数を参照しています。このコードのコンパイルを行うと「エラー: 変数numは初期化されていない可能性があります」というエラーが発生します。

このように変数は宣言した時点では規定値は存在しません。変数は必ず値を代入してから利用するようにしてください。

-- --

Java で変数の初期化を行う方法、および変数に値を代入する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。