メディアプラネット 中島省吾

 前回までに,Java言語の特徴や,Javaプログラミングを学習するコツなどについて説明しました。今回からは,実際にJavaプログラムを書くために必要な約束ごと,つまりJavaの基本的な文法について説明していきます。

変数

変数とは

 変数は値を格納する領域に対して,名前を付けたものです。変数は,よく器にたとえられます。変数a,変数bを用意してそれぞれ,「3」と「4」という値を入れます。この2つの変数の値を合計して変数cに代入すると,変数cの値は7になります。

どうですか,昔,数学でやった記憶はありませんか? このような変数を使った計算をJava言語では,次のように記述します。

a = 3;
b = 4;
c = a + b;

 Java言語では,値やオブジェクトを変数にセットするようなとき,代入演算子「=」を使用します。「=」は代入であって,イコール(同じ)という意味ではありません。したがって,次の2つは,同じ意味ではありません。

a = 3; // 変数aに3を代入する
3 = a; // 3は変数名にはならないので,数値に代入にしようとしてエラーになる

変数には,必ず名前をつけなければいけません。その名前の付け方にも決まりがあります。

変数の名前付け規則
変数名の先頭文字は、英字か$記号かアンダーラインで始める。
変数名に文字数の制限はありません。
変数名は、英字か$記号かアンダーラインか数字による一連の文字で構成する
変数名に、漢字・ひらがな・カタカナを使うことはできない。

変数の宣言

 Java言語では,変数は宣言しなければ使うことはできません。例えば,変数は以下のように宣言します。

int a;
int b;
int c;

ここでは,a,b,cという3つの変数を宣言して,a,b,cが変数であることをコンパイラに指示しています。最初に「int」というキーワードがありますが,これは「基本データ型」と呼ばれるものです。詳しくは次の項で説明します。

次に基本データ型が「long」の変数a,b,cを宣言してみます。

long a;
long b;
long c;

このようにJava言語では,変数を宣言するとき,次のような構文で表現します。

データ型 変数名;

また,同じデータ型の変数をカンマで区切って,1行で宣言する方法もあります。

long a, b, c;

変数の基本データ型

 変数の宣言に出てくる「int」や「long」といったキーワードは「基本データ型」と呼ばれます。最初に変数は,器のようなものだと説明しましたが,これはあくまで人間が考え出した概念的なものです。実際には(物理的には),コンピュータのメモリーに変数が作られます。つまり,人間の想像力とは違い,メモリに記憶できるデータは有限なので,メモリーの容量を超える値は,変数に格納することができません。そこで,変数に記憶できるデータの種類やサイズを限定することで効率よくメモリーを使用しようとしたのが,データ型ができた理由です。

 データ型によって,変数は代入できるデータに制限が生まれます。もし,互換性のないデータ型の値を変数に代入しようとするとコンパイルエラーや実行時にランタイムエラーを起こす場合があります。変数の宣言にはデータ型の指定が必要です。Javaには以下のような基本データ型があります。

整数型byte、short、int、long
浮動小数点型float、double
文字型char
真偽型boolean

 Java言語の変数には,参照型という型もありますが詳しくは「オブジェクト指向」の章で説明します。このように,Java言語では,変数が表現する値をデータ型で指定します。

変数を使う練習

 それでは,変数を使う練習をしてみましょう。以下のようにコードを入力してください。

public class MyCalc {
  public static void main(String[] args) {
    int a = 3;
    int b = 4;
    System.out.println("a+b"); 
  }
}

ここでは,int型の変数aとbを宣言して,同時に値を入力しています。プログラムでは,この2つの変数の合計値を表示したいと思います。ファイル名をMyCalc.javaにしてC:\MyJavaに保存します。コマンドラインから「javac MyCalc.java」と入力してエンターキーを押してコンパイルします。

C:\MyJava>javac MyCalc.java

コンパイルできたら,Javaで実行します。

C:\MyJava\java MyCalc

すると画面には,aとbを合計した結果の「7」ではなく,「a+b」と表示されます。

 これは,a+bという変数の演算を「"」でくくっているのが原因です。このように「"」でくくった部分は文字列として判断されてしまうため,「a」も「b」も変数としては扱われません。「+」も同じように文字として扱われてしまいます。そこで以下のように変更します。

public class MyCalc {
  public static void main(String[] args) {
    int a = 3;
    int b = 4;
    System.out.println(a+b); 
  }
}

このように「"」をはずして,ファイルを上書き保存した後,コンパイルして実行します。すると今度は,変数aと変数bの合計である7が表示されます。

 ここでは,「+」という和を求める算術演算子を使いましたが,他の算術演算子も試してみましょう(他の算術演算子については「演算子」で詳しく取り上げています)。