Java道|変数の宣言と代入の基本

変数は値を入れる箱、宣言は箱の準備、代入は箱に値を入れること。Javaのコードが動き出す基本を身につけよう

これまでのJava学習では、文字や数値をそのまま画面に表示する考え方を見てきました。たとえば、決まった文章や決まった数値をコードに書き、その内容を表示するという流れです。

ここからは、Javaがよりプログラムらしく動くための大切な考え方に入っていきます。その中心になるのが、変数の宣言と代入です。

鬼殺隊の任務でたとえるなら、変数は任務中に使う道具箱のようなものです。敵の数、隊士の年齢、任務の得点、残り時間など、あとで使いたい情報を一時的に入れておく箱です。ただし、箱は最初から使えるわけではありません。まず「この種類の値を入れる箱を、この名前で用意します」と決める必要があります。これが宣言です。

そして、用意した箱に実際の値を入れる作業が代入です。箱だけ用意しても、中に値が入っていなければ使えません。宣言で箱を準備し、代入で値を入れ、その値を必要な場面で取り出して使う。この流れを理解すると、Javaのコードが一気にプログラムらしく見えてきます。

ここでは、変数の宣言、代入、出力の流れを、鬼滅の刃風の修行イメージに置き換えながら、やさしく整理していきます。具体的な例示プログラムは Sample1.java のみを使い、変数を用意して、値を入れて、画面に表示するまでの流れを丁寧に確認していきましょう。

変数を使う前に必要な宣言

変数を使うには、まずその変数をJavaの中で使える状態にする必要があります。この作業を変数の宣言といいます。

宣言とは、「これからこの型の、この名前の変数を使います」とJavaに伝えることです。Javaでは、思いついた名前をいきなり書いて変数として使うことはできません。先に変数を用意してから、その変数に値を入れたり、値を取り出したりします。

鬼殺隊の任務で考えると、宣言は「この任務では、薬箱を1つ用意する」「敵の数を記録する札を1枚用意する」と事前に準備するようなものです。任務が始まってから、何も準備していない箱に急に道具を入れることはできません。まず入れ物を用意する必要があります。

変数の宣言の基本形は、次のようになります。

型名 識別子;
部分意味
型名変数に入れる値の種類
識別子変数の名前
セミコロン1つの文の終わり

たとえば、整数を入れる変数なら int、1文字を入れる変数なら char、小数を入れる変数なら double など、値の種類に合った型を指定します。

ここで大切なのは、宣言には2つの意味があることです。

宣言で決めること内容
どんな種類の値を入れるのか
名前どの名前でその変数を使うのか

変数は「値を入れる箱」と考えるとわかりやすいですが、宣言はその箱を作る作業です。どんな種類の値を入れる箱なのか、どんな名前の箱なのかを、最初に決めるのです。

宣言の書き方を整理する

変数の宣言は、実際の形を見るとさらに理解しやすくなります。

int num;
char c;
double db, dd;

これらはすべて、変数を宣言している文です。

宣言意味
int num;int型の変数 num を宣言する
char c;char型の変数 c を宣言する
double db, dd;double型の変数 db と dd をまとめて宣言する

int num; は、整数を入れるための変数 num を用意しています。
char c; は、1文字を入れるための変数 c を用意しています。
double db, dd; は、小数を扱う double型の変数 db と dd をまとめて用意しています。

同じ型の変数であれば、カンマで区切ってまとめて宣言できます。

書き方内容
int num;変数を1つ宣言する
double db, dd;同じ型の変数を複数まとめて宣言する

鬼殺隊風にたとえるなら、int num; は「整数を記録する箱 num を1つ用意する」という意味です。double db, dd; は「小数を記録する箱 db と dd を2つまとめて用意する」というイメージです。

ただし、同じ文でまとめて宣言できるのは、同じ型の変数です。型が違う変数は、それぞれの型に合わせて宣言します。

宣言するとメモリ上に場所が用意される

変数を宣言すると、その変数に対応する値の置き場所が用意されます。

学習の入り口では、メモリの中にその変数専用の場所が準備される、と考えるとわかりやすいです。宣言は、単に名前を書く作業ではありません。値を記憶するための場所を正式に用意する作業です。

鬼殺隊の補給所でたとえるなら、宣言は「この棚に num という名前の箱を置く」「この棚に c という名前の箱を置く」という準備です。まだ箱の中に物が入っているとは限りませんが、箱そのものは使える状態になります。

段階状態
宣言前変数の箱がまだない
宣言後変数の箱が用意される
代入後箱の中に値が入る

ここで押さえたいのは、宣言しただけでは、まだ具体的な値を入れたとは限らないという点です。

宣言は箱を用意する作業です。値を入れる作業は、次に出てくる代入です。この2つを分けて考えると、変数の流れがかなり理解しやすくなります。

図:変数の宣言

↓クリックすると拡大表示されます。

この図が示していること

この図は、変数を宣言すると、メモリ上に変数のための場所が用意されることを示しています。

int num や char c という箱が準備されていますが、箱の中はまだ空です。つまり、宣言は値を入れる作業ではなく、値を入れるための場所を作る作業です。

この図から分かること

宣言と代入は別の作業です。

宣言では、型と名前を決めて変数を用意します。値を入れるのは代入の役割です。この違いを理解しておくと、Javaのコードを読むときに「今は箱を作っている段階なのか」「値を入れている段階なのか」を区別しやすくなります。

変数に値を入れる代入

変数を宣言したら、その変数に値を入れることができます。この作業を代入といいます。

代入は、用意した箱の中に値を入れるようなイメージです。整数を入れるために用意した変数に整数を入れたり、文字を入れるために用意した変数に文字を入れたりします。

代入は = を使って書きます。

num = 3;

これは、変数 num に 3 を代入するという意味です。これにより、num の中に 3 という値が記憶されます。

部分意味
num値を入れる変数
=右側の値を左側の変数へ入れる記号
3変数に入れる値
セミコロン文の終わり

鬼殺隊風にたとえるなら、num という名前の箱に、3 と書かれた任務札を入れるイメージです。

ここで特に大切なのが、= の意味です。

数学では、= は左右が等しいことを表します。しかし、Javaでは右側の値を左側の変数へ入れるという意味で使います。つまり、Javaの = は「等しい」ではなく「代入する」と読むのが基本です。

代入の基本形

代入の基本形は、次のようになります。

変数名 = 式;

ここでの式は、学習の初期段階では「値」と考えて大丈夫です。たとえば、3 や 18 のような数値も式です。学習が進むと、計算式や別の変数を使った式も右側に書けるようになります。

書く場所内容
左側値を入れる変数
=代入を表す記号
右側変数に入れたい値や式

代入は、右から左へ値が入るイメージで読むとわかりやすいです。

age = 18;

この場合は、18 という値を age に入れます。age を 18 に変える、というよりも、age という箱の中に 18 を入れると考えると理解しやすいです。

読み方
age = 18;18をageに代入する
num = 3;3をnumに代入する

左側と右側の役割を逆に考えないようにすることが大切です。

右側の値を、左側の変数へ入れる。これが代入の基本です。

図:変数への代入

↓クリックすると拡大表示されます。

この図が示していること

この図は、宣言で用意した変数の箱に、代入によって具体的な値が入ることを示しています。

age という箱があり、そこに 18 という値が入っています。右側のモニターには、変数の中身である 18 が表示されています。

この図から分かること

代入は、変数に値を記憶させる作業です。

= は数学の等号とは違い、右側の値を左側の変数へ入れるために使います。この考え方がわかると、変数を使ったコードの流れを読み取りやすくなります。

Sample1.javaで宣言、代入、出力の流れを確認する

ここでは、変数の宣言、代入、出力までを1つの流れで確認します。ファイル名は Sample1.java です。

ファイル名:Sample1.java

class Sample1
{
    public static void main(String[] args)
    {
        int age;    // 年齢を入れるための変数を宣言します

        age = 18;   // 変数ageに18を代入します

        System.out.println("年齢は " + age + " 歳です。");    // 変数ageの値を表示します
    }
}

実行結果

年齢は 18 歳です。

このプログラムでは、変数 age を用意し、その中に 18 を入れ、最後に画面へ表示しています。

流れを整理すると、次のようになります。

順番内容役割
1int age;int型の変数 age を宣言する
2age = 18;変数 age に 18 を代入する
3System.out.println("年齢は " + age + " 歳です。");age の中身を表示する

まず、int age; で整数を入れるための変数 age を用意しています。

この時点では、age という箱を準備した段階です。次に age = 18; によって、その箱の中に 18 という値を入れています。

最後に、System.out.println を使って、文字列と変数 age の値を組み合わせて表示しています。画面に表示されるのは age という名前そのものではなく、age の中に入っている 18 です。

宣言、代入、出力をひとつながりで読む

変数を使った基本の流れは、宣言、代入、出力の3段階で考えるとわかりやすいです。

段階内容鬼殺隊風のイメージ
宣言変数を用意する任務用の箱を準備する
代入変数に値を入れる箱に任務札を入れる
出力変数の値を表示する箱の中身を報告する

Sample1.javaでは、age という変数を使って、この3つの流れを確認できます。

int age;

この文では、age という箱を用意しています。

age = 18;

この文では、age の箱に 18 を入れています。

System.out.println("年齢は " + age + " 歳です。");

この文では、age の中身を使って画面に表示しています。

ここで大切なのは、変数は名前だけの存在ではなく、中に値を持てる存在だということです。変数名を書くことで、その中に入っている値を利用できます。

= は等しいではなく代入する

変数の学習でつまずきやすいのが、= の意味です。

Javaのコードで次のように書いた場合、

age = 18;

これは、age と 18 が等しいという数学的な意味ではありません。18 という値を age に入れるという意味です。

分野= の意味
数学左右が等しい
Java右側の値を左側の変数に代入する

この違いは、とても重要です。

鬼殺隊風にたとえるなら、= は「右側にある札を、左側の箱に入れる動作」を表す記号です。age = 18; なら、18 と書かれた札を age の箱に入れる、という流れです。

このイメージで読むと、代入文が自然に理解しやすくなります。

Javaの文イメージ
age = 18;18をageに入れる
num = 3;3をnumに入れる

これから計算式を扱うようになると、右側に計算結果を書いて、その結果を左側の変数に入れる場面が出てきます。そのときにも、この考え方が役立ちます。

変数の値を出力するしくみ

変数に値を入れたら、その値を画面に表示できます。

ここで大切なのは、表示されるのが変数名ではなく、変数の中身だということです。

Sample1.javaでは、次の文で変数 age の値を表示しています。

System.out.println("年齢は " + age + " 歳です。");

この文では、文字列である 年齢は と 歳です。 の間に、変数 age を入れています。

部分役割
"年齢は "そのまま表示する文字列
age変数の中身を表示する
" 歳です。"そのまま表示する文字列

この結果、画面には次のように表示されます。

年齢は 18 歳です。

ここで画面に出るのは、age という文字ではありません。age に入っている 18 です。

つまり、変数名を書くことで、その変数の中に記憶されている値を使えるということです。

変数名を表示するときの注意

変数の値を表示したいときは、変数名を引用符で囲みません。

引用符で囲んだものは、文字列として扱われます。つまり、age を引用符で囲むと、変数 age の中身ではなく、age という文字そのものになります。

書き方Javaでの扱い
age変数 age の中身を使う
"age"age という文字列として扱う

この違いはとても大切です。

鬼殺隊の箱でたとえるなら、age と書くのは「age の箱を開けて中身を見る」ことです。一方、"age" と書くのは「age という文字が書かれた札をそのまま見せる」ことです。

目的書き方の考え方
変数の中身を表示したい変数名をそのまま書く
普通の文字として表示したい引用符で囲む

画面表示では、文章として表示したい部分は引用符で囲み、変数の値を表示したい部分は引用符なしで書きます。

この使い分けができるようになると、変数を使った表示がぐっと理解しやすくなります。

宣言と代入は別の作業

変数の宣言と代入は、つながりはありますが、別の作業です。

作業内容
宣言変数を用意する
代入変数に値を入れる

たとえば、次の流れを見てみます。

int age;
age = 18;

1行目では、int型の変数 age を用意しています。
2行目では、age に 18 を入れています。

鬼殺隊の任務でいえば、1行目は「年齢を記録する箱を用意する」、2行目は「その箱に18という札を入れる」という流れです。

このように分けて考えると、変数の状態が見えやすくなります。

タイミング変数 age の状態
宣言前age という箱はまだない
宣言後age という箱が用意される
代入後age の中に 18 が入る
出力時age の中身である 18 が使われる

この流れを押さえると、今後の初期化、式、計算、入力処理も理解しやすくなります。

変数を使うとコードが実用的になる

変数を使わない場合、コードは決まった文字や数値をそのまま表示するだけになりがちです。

しかし、変数を使えるようになると、値をいったん保存して、その値をあとで利用できます。これにより、プログラムの自由度が大きく広がります。

変数を使わない場合変数を使う場合
決まった値を直接書く値を変数に入れて使える
値を変更しにくい変数の値を変えれば表示内容も変えやすい
処理の意味が見えにくいことがある変数名で値の役割が分かりやすい
応用しにくい計算や入力処理につなげやすい

鬼殺隊の任務でたとえるなら、毎回すべての情報を口頭で伝えるよりも、任務札や道具箱に情報を入れて管理したほうが、あとで使いやすくなります。

変数は、プログラムの中で値を管理するための基本です。

宣言で変数を準備する。
代入で値を入れる。
必要な場面でその値を使う。

この流れがわかると、Javaのコードが「ただ表示するだけ」から「値を扱いながら動く」ものへ変わっていきます。

変数の宣言と代入で身につく考え方

変数の宣言と代入を学ぶことで、Javaのコードを読むときの視点が変わります。

「この値はどこに保存されているのか」
「この変数にはどんな型の値が入るのか」
「この代入で、変数の中身はどう変わるのか」
「出力されるのは変数名なのか、それとも中身なのか」

こうした見方ができるようになると、コードの流れを追いやすくなります。

学ぶ内容身につく力
宣言変数を使う前に準備する考え方
どんな値を入れるかを決める考え方
識別子変数に名前をつけて区別する考え方
代入変数に値を記憶させる考え方
出力変数の中身を利用する考え方

変数の宣言と代入は、とても基本的な内容ですが、Java学習の中では非常に重要です。

ここをしっかり押さえておくと、この先の初期化、計算、キーボード入力、条件分岐などの内容が自然につながっていきます。宣言は箱の準備、代入は箱に値を入れること。この基本イメージを持っておくと、Javaの変数はぐっと理解しやすくなります。