変数の値を取得

広告

最後に変数に代入された値を取得する方法を確認します。

これまでのサンプルでも使用してきましたが、数値や文字を記述する場所で代わりに変数を記述すると、変数に代入されている値が取り出されて代わりに使われます。次のサンプルを見てください。

System.out.println('A');

char c = 'A';
System.out.println(c);

このサンプルでは2回「A」の文字が画面に出力されます。このようにプログラムの中で変数を記述すると、変数に代入されている値が代わりに使われます。では次のサンプルを見て下さい。

int n1, n2;

n1 = 10;
n2 = n1;

このサンプルではまず変数「n1」に数値の10を代入しています。そして次に変数「n2」に変数「n1」を代入しています。この場合も変数「n1」に代入されている値である数値の10が記述されたものとして扱われますので変数「n2」には数値の10が代入されます。

int n1, n2;
int result;

n1 = 10;
n2 = 20;
result = n1 * 5 + n2;

このサンプルでは変数「n1」の値を5倍し、それに変数「n2」の値を加算したものを変数「result」に代入しています。このように変数に対して加算や乗算といった演算を行うことも可能です(演算については演算子のページで詳しく解説します)。

基本データ型の変数の場合の代入について

まずは次のサンプルを見てください。

int n1, n2;

n1 = 10;
n2 = n1;
n1 = 20;

System.out.println(n1);
System.out.println(n2);

このサンプルでは変数「n1」に10を代入し、次に変数「n2」に変数「n1」を代入し、最後に変数「n1」に20を代入しています。この時、変数「n1」には20が代入されていますが変数「n2」には何が代入されているでしょう。答えは10です。

Javaでは基本データ型を使用する変数の場合、変数毎に実際に値を保管する場所を持っています。変数を他の変数に代入すると、元の変数の値を複製して代入する先の変数に保管します。その為、同じ値が別々に保管されることになります。よってその後でどちらかの変数に別の値を代入しても、他の変数が保管している値には何の影響も与えません。

プログラミング言語によっては、変数は保管場所を持たずに別途用意された保管場所を指す目印だけを持つものもあります。変数に他の変数を代入すると、それはどこかにある同じ保管場所を指し示す目印が複製されることになり、どちらの変数も同じ保管場所を共有することになります。よってその後でどちらかの変数に別の値を代入すると、保管場所を共有している全ての変数に影響が出ます。

Javaであっても配列やクラス型の変数の場合には、実際に保管場所を持たず他に用意された保管場所の目印だけを持つようになります。詳しくは配列やクラスのところで解説しますが、変数に他の変数を代入する場合にはそれが何の変数かによって扱いが異なる場合もあるということだけ覚えておいて下さい。

サンプル

では簡単なサンプルで試してみます。

JSample8_1.java

class JSample8_1{
  public static void main(String args[]){
    int n1, n2;

    n1 = 100;
    n2 = n1;

    System.out.println(n1);
    System.out.println(n2);

    System.out.println("----");

    n1 = 80;
    System.out.println(n1);
    System.out.println(n2);
  }
}

コンパイル後に実行すると次のように表示されます。

p8-1

( Written by Tatsuo Ikura )