変数

変数 variableとは、computer 上の memory の一部に 名前を付けたものです。 電卓の memory 機能を想像すればよいでしょう。 数値や計算結果を変数に 入れておいて、あとで表示したり別の計算に使ったりします。

数値型の変数には次の種類があります。

byte 型
8ビット整数(-128127
short 型
16ビット整数 (-3276832767
int 型
32ビット整数 (-21474836482147483647
long 型
64ビット整数 (-92233720368547758089223372036854775807
float 型
32ビット(単精度)実数、 約6桁精度、範囲 ±3.40282×1038
double 型
64ビット(倍精度)実数、 約15桁精度、範囲 ±1.79769×10308

たくさんあって覚えづらいのであれば、

整数の演算は int 型
実数の場合は double型
と覚えておけばよいでしょう。
............虚数は?虚数型という変数型はあるの?
............実は用意されていますが、ここでは触れません

変数(int 型)

x という名前で int 型の変数を作るための命令は

    int x;
です(int とは英語の integer から来ています)。 あらかじめ x の値が分かっているときには
    int x = 123;
という書き方もできます。
このとき、x のことを変数名、123 を x の値といったりします。 すなわち、computer の記憶領域のある一部(整数を表現するための 32 ビット) に x という名前をつけて、そこに 123 という数値を記憶させたことを意味します。 Java では大文字と小文字は区別されますので x と X では 異なる変数になります。
変数名には、1 文字以上の英数文字と一部の記号を使うことができます (日本語の変数名は使わないでください)。たとえば
    int long_long_int = 123, LongLongLongIntegerVariableName;
とすると long_long_int と LongLongLongIntegerVariableName という 2 つの int 型の変数を宣言したことになります。
class Test {
    public static void main(String args[]) {
        int a, b, shou, amari;  // int 型の四つの変数を作る

        a = 128;                // 変数 a に 128 を入れる
        b = 5;                  // 変数 b に 5 を入れる
        shou  = a / b;          // a を b で割った商を shou に入れる
        amari = a % b;          // a を b で割った余りを amari に入れる
        System.out.println("商 = " + shou + "  余り = " + amari);
    }
}

この program を実行すると、 128 を 5 で割ったときの商と余りを計算し、

商 = 25 余り = 3
と出力されます。

main() method の中の最初の行(上のリストの3行目)で、 整数を入れるための四つの変数 a、b、shou、amari を作っています。 この 3 行目がないと(computer には a の型がわからないので) 5 行目の a = 128 のところで error になってしまします。

5行目で変数 a に 128 という値を覚えさせています (代入するという)。 同様に、6行目で変数 b に 5 という値を代入しています。

他の多くの computer 言語と同じように、java での代入には、 左辺値と右辺値との区別があります。数学では、
a = 10;
10 = a;
とは同じ意味になりますが、java で変数に値を代入する場合には、 必ず a = 10; のように左辺値に右辺値を代入するという形で使わなければ いけません。

7〜8行目でこれらの値を使って、a を b で割ったときの 商 a / b と 余り a % b とを求めています。

こうして求めた商と余りを9行目で出力しています。

上のprogram は次のように書いてもかまいません。

class Test {
    public static void main(String args[]) {
        int a = 128;            // 変数 a に 128 を入れる
        int b = 5;              // 変数 b に 5 を入れる
        int shou  = a / b;      // a を b で割った商を shou に入れる
        int amari = a % b;      // a を b で割った余りを amari に入れる
        System.out.println("商 = " + shou + "  余り = " + amari);
    }
}

変数は代入する前に使うとエラーになります。たとえば

class Test {
    public static void main(String args[]) {
        int a;                
        System.out.println(a);
    }
}
を compile しようとすると、error になります。 computer には変数 a の値が分からないからです。

変数(double 型)

次のprogram は半径 5 の円の面積を求めて画面に表示します。

class Test {
    public static void main(String args[]) {
        double r, a;          // 倍精度の変数 r、a を作る

        r = 5.0;              // 変数 r に値を代入
        a = Math.PI * r * r;  // Math.PI は円周率
        System.out.println("面積 = " + a);
    }
}

実行すると「面積 = 78.5398」と出力されます。

main() method の中の最初の行(リスト 3行目)で、 double 型(倍精度実数)の変数 r と a を 定義しています。

5行目で変数 r に 5.0 という値を代入し、 6 行目でこの r を使って円の面積を計算して変数 a に代入しています。 7 行目はおなじみの出力するための命令です。

Math.PI はj ava.lang.Math であらかじめ定義されている 円周率を表す定数です。


文字列型

文字列型の変数を宣言するには string を使います。

class Hello {
    public static void main(String args[]) {
        String s = "こんにちは";
        System.out.println(s);
    }
}

次のように + を使って文字列の連結ができます。

        String s;
        s = "こんにちは";
        System.out.println(s);  // 「こんにちは」と出力
        s = s + "さようなら";
        System.out.println(s);  // 「こんにちはさようなら」と出力