Top > Java > 変数


変数とは

変数の仕組み

プログラムを実行するとき、プログラムはコンピュータに様々な値を記憶させながら処理を行います。 例えば、ユーザーが数値を入力し、何か加工した後に画面に出力する場合、数値をどこかに記憶しておき、 画面に出力します。この値を記憶させておく機能は変数と呼ばれています。

コンピューターは、色々な値を記憶しておくために、内部にメモリという記憶装置を持っています。 変数は、メモリを利用して値を記憶する仕組みです。


識別子

多くのプログラミング言語の中で、変数を扱うためには、まず最初に決めておかなければならない事項があります。

  • 変数名を決める
  • 変数の型を決める

変数の名前については、基本文法で説明した内容の他に、

  • 英字、数字、アンダースコアーなどを用いる
  • Javaの予約コードは使えない(例えば、"return"など)
  • 数字ではじめる事はできず、大文字と小文字は区別される

といった決まりごとがあります。


変数の型

変数には値を記憶させることができますが、いくつかの種類があります。値の種類は、データ型またはと呼ばれています。Javaには、以下のような基本的な型があります。

型名記憶できる値
booleantrueまたはfalse
char2バイト文字(\u0000~\uffff)
byte1バイト整数(-128~127)
short2バイト整数(-32768~32767)
int4バイト整数(-2147483638~2147483647)
long8バイト整数
float4バイト単精度浮動小数点
double8バイト倍精度浮動小数点

Javaでは変数を使用するために、予め型と識別子を宣言しておく必要があります。 例えば、"char str;"と宣言すると、\u0000~\uffff までのうち、どれか1つの値を記憶させることができます。


変数の利用

変数の宣言

上記で既に表記しましたが、型の宣言は、

型名 識別子;

という形式で宣言します。 また、"char str1, str2;"と宣言することによって、同時にchar型の変数を宣言することができます。 変数を宣言すると、その名前の変数をコードの中で使っていくことができるようになります。


変数への代入

変数を宣言すると、変数に特定の値を記憶させることができるようになります。 変数に値を記憶させるには、

num = 3;

のように、「=」という記号を使用します。この処理を変数への代入と言います。 変数の宣言、変数への代入を以下の例を実行し、試してみてください。

例1
すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 
-
|
-
|
|
|
|
|
!
!
class Sample1
{
    public static void main(String args[])
    {
        int num;    /* 変数の宣言   */
 
        num = 3;    /* 変数への代入 */
 
        System.out.println("変数numの値は" + num + "です");
    }
}

変数numの値は3です

プログラムの世界では、「=」という記号だけに限りませんが、 記号はその言語に応じた特殊な意味を持ちます。Javaの場合、「=」は値への代入を意味します。 値の代入は、下記のようにも書くことができます。

num1 = num2; /* num1にnum2の値を代入する */
num1 = 3 + 5;
num1 = num2 + 6;


代入時の注意

変数に値を代入する時には、注意しなければならないことがあります。下記のコードを見てみましょう。

例2
すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 
-
|
-
|
|
|
|
|
!
!
class Sample2
{
    public static void main(String args[])
    {
        int num;    /* 変数の宣言   */
 
        num = 3.14;    /* 変数への代入 */
 
        System.out.println("変数numの値は" + num + "です");
    }
}

これは、例1のコード"3"を代入する処理から"3.14"を代入する処理へ変更しただけですが、 このままではコンパイルすることができません。 int 型である変数numには、小数点のついた数値をそのまま代入することができないからです。 このように、明示的に分かる場合はいいですが、計算結果を格納する際には、 計算結果が意図しない結果となってしまいます。小数点を扱う場合は、更なる注意が必要です。


変数の初期化

ところで、例1では、

int num;
num =3;

というように、変数を宣言してから、もう1つの文を記述して、変数の中に値を代入しました。 変数を宣言した時、同時に変数に値を格納するということもできます。 変数の初期化は、以下のように記述します。

型名 識別子 = 式;

実際に、コードを書くときには、できるだけ変数を初期化するようにしてください。 変数の宣言をするだけでは、メモリを確保する動作のみですので、そのメモリに元々記憶している 値がクリアされません。そのため、そのままの変数を使用すると、予期せぬ動作をすることになります。


キーボードからの入力

ここで、キーボードからの入力について少し説明しておきます。 この方法を学ぶと、さらに柔軟なプログラムが記述できるようになります。下記の例を見てください。

例3
すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 
 
 
-
|
-
|
|
|
|
|
|
|
|
!
!
import java.io.*;
 
class Sample3
{
    public static void main(String args[]) throws IOException
    {
        ・・・・・
        BufferedReader br =
            new BufferedReader(new InputStreamReader(System.in));
 
        String str = br.readLine();
 
        // 入力された文字列 str を使用する
         ・・・・・
    }
}

このようなスタイルでキーボードから入力させるのだ、ということだけを心に留めておいてください。 詳しくは、後に説明します。


リロード   凍結解除 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Fri, 13 May 2011 00:14:58 JST (2688d)