変数と入力

変数とは,電卓のメモリー機能のようなものです。 数値や計算結果を変数に入れておけば,あとで表示したり別の計算に使ったりすることができます。

数値を入れておくためのJavaの変数には次の種類があります。

byte
8ビット整数(-128〜127)
short
16ビット整数(-32768〜32767)
int
32ビット整数(-2147483648〜2147483647)
long
64ビット整数(-9223372036854775808〜9223372036854775807)
float
32ビット(単精度)実数,約6桁精度,範囲 ±3.40282×1038
double
64ビット(倍精度)実数,約15桁精度,範囲 ±1.79769×10308

このうち特によく使うのは int 型と double 型です。

変数(int 型)

たとえば int 型の変数 x を作るための命令は

    int x;

です。 また,int 型の変数 x を作り,初期値として 123 を代入するための命令は

    int x = 123;

です。

次のプログラムは 128 を 5 で割ったときの商と余りを求めます。

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);
    }
}

実行すると「商 = 25 余り = 3」と出力します。

main() メソッドの中の最初の行(上のリストの3行目)で,整数を入れるための四つの変数 abshouamari を作っています。 こうしてできた変数を int(イント)型の変数といいます。 変数とは,値を入れておく箱のようなものです。 int は整数を意味する英語 integer(インテジャー)から来ています。

5行目で変数 a に 128 という値を覚えさせています。 同様に,6行目で変数 b に 5 という値を入れています。

7〜8行目でこれらの値を使って,ab で割ったときの商 a / b と余り a % b とを求めています。 % は整数の割り算の余りを求める記号です。

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

上のプログラムのように,メソッドの最初のところでまとめて変数を作る場合は,変数を作る命令とそれ以外の命令との間に空行(くうぎょう,空の行)を1行入れることを習慣としている人が多いようです。

上のプログラムは次のように書いてもかまいません。

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);
    }
}

昔のC言語では変数は最初にまとめて作ることしかできませんでしたが,JavaやC++ではどこでも変数を作ることができます。

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

class Test {
    public static void main(String[] args) {
        int a;                 // 変数 a を作ったけれど……
        System.out.println(a); // 値を入れないうちに使った
    }
}

をコンパイルしようとすると,次のようなエラーメッセージが出ます。

Test.java:4: 変数 a は初期化されていない可能性があります。
        System.out.println(a);
                           ^
エラー 1 個

変数(double 型)

次のプログラムは半径 5 の円の面積を求めて画面に表示します。

class Test {
    public static void main(String[] args) {
        double r = 5.0;              // 倍精度の変数 r に値を代入
        double a = Math.PI * r * r;  // Math.PI は円周率
        System.out.println("面積 = " + a);
    }
}

実行すると「面積 = 78.53981633974483」と出力します。

main() メソッドの中の最初の行(上のリストの3行目)で,double 型(倍精度実数)の変数 r を作り,5.0 という値を入れています。 同様に,4行目で変数 a を作り,円の面積をそれに代入し,5行目で出力しています。

Math.PI は円周率を表す定数です(java.lang.Math で定義されています)。

文字列型

文字列を直接出力する方法は,すでに勉強しました。 たとえば

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

とすればよかったのですね。

文字列を変数に代入しておくこともできます。 それには

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);  // 「こんにちはさようなら」と出力

文字列が変数に代入できて,文字列の長さをいくらでも延ばせるのは,BASICやJavaにあってC言語にない便利な機能です。


奥村晴彦

Last modified: 2005-09-22 15:32:16