Java道|変数の初期化とは何か

初期化は、変数を「値入りの箱」として準備すること。Javaのコードを安全に、わかりやすく動かそう

変数の宣言と代入を学ぶと、Javaではまず変数を用意し、そのあとで値を入れて使う、という流れが見えてきます。宣言は箱を用意すること、代入はその箱に値を入れることでした。

ここでさらに便利な書き方として登場するのが、変数の初期化です。

初期化とは、変数を宣言すると同時に、最初の値を入れることです。つまり、空の箱を用意してからあとで値を入れるのではなく、最初から中身入りの箱として準備するイメージです。

鬼殺隊の任務でたとえるなら、宣言だけの変数は「空の道具箱を用意した状態」です。一方、初期化された変数は「任務開始時点で、すでに必要な道具が入っている箱」です。出発してから薬や札を入れ忘れていたことに気づくより、最初から必要なものを入れておいたほうが安全でわかりやすいですよね。

Javaでも同じです。変数に最初の値を入れておくことで、値の入れ忘れを防ぎやすくなり、コードを読む人にも「この変数はこの値から始まるんだ」とすぐに伝わります。

ここでは、初期化とは何か、宣言と代入との違い、初期化が便利な理由、値を入れないまま変数を使おうとしたときに起こることを、鬼滅の刃風の修行イメージに置き換えながら、やさしく整理していきます。考え方を中心に確認していきましょう。

初期化とは、宣言と同時に最初の値を入れること

初期化とは、変数を宣言したときに、同時に最初の値を入れることです。

変数の基本では、まず変数を宣言し、そのあとで値を代入する流れを学びました。これは、空の箱を用意してから、その箱に値を入れる流れです。

一方、初期化では、変数を用意する作業と、最初の値を入れる作業を1つにまとめます。

int num = 3;

この書き方では、int型の変数 num を宣言すると同時に、3 という値を入れています。

鬼殺隊風にたとえるなら、num という道具箱を作ると同時に、その中へ 3 と書かれた任務札を入れておくようなものです。任務が始まった瞬間から、その箱の中身がはっきりしているので、あとで迷わず使えます。

用語内容鬼殺隊風のイメージ
宣言変数を用意する空の道具箱を用意する
代入変数に値を入れる箱に任務札を入れる
初期化宣言と同時に最初の値を入れる最初から札入りの箱を用意する

初期化は、単に短く書くための方法ではありません。変数を使い始める時点で、中身をはっきり決めておくための大切な書き方です。

宣言と代入を分ける書き方との違い

変数に値を入れる方法には、宣言と代入を分ける書き方と、初期化として1文にまとめる書き方があります。

まず、宣言と代入を分ける場合は、次のように考えます。

int num;
num = 3;

1行目で int型の変数 num を用意します。
2行目で num に 3 を入れます。

これに対して、初期化では次のように書きます。

int num = 3;

この1文で、変数 num の宣言と、値 3 の代入を同時に行っています。

書き方内容状態
int num; num = 3;宣言と代入を2文に分ける箱を作ってから値を入れる
int num = 3;宣言と代入を1文にまとめる値入りの箱を最初から用意する

どちらも、最終的には num に 3 が入った状態になります。

ただし、初期化のほうが「この変数は最初から3で始まる」ということが1文でわかります。そのため、コードを読む人にとっても流れがつかみやすくなります。

初期化の基本構文

変数の初期化は、次の形で書きます。

型名 識別子 = 式;

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

それぞれの部分には、次の意味があります。

部分意味
型名変数に入れる値の種類
識別子変数の名前
=右側の値を左側の変数に入れる記号
最初に入れる値や計算結果
セミコロン1つの文の終わり

たとえば、整数を入れる変数を用意し、最初の値として 3 を入れるなら、次のような形になります。

int num = 3;

この形を見ると、宣言の形に、代入の形が加わっていることがわかります。

書き方役割
int num;宣言
num = 3;代入
int num = 3;初期化

初期化は、宣言と代入をひとつにまとめた書き方です。

鬼殺隊の任務でいえば、「箱を用意する」と「札を入れる」を同時に済ませるようなものです。任務開始前の準備がすっきりまとまるので、扱いやすくなります。

初期化のよさは、使い始めの値が明確になること

初期化の大きなよさは、変数を使い始める時点で、その変数の値がはっきりしていることです。

変数を宣言しただけでは、「箱はあるけれど、中身が決まっていない状態」です。これでは、その変数を安全に使う準備ができているとはいえません。

初期化をすると、変数を宣言した瞬間に最初の値も決まります。

状態変数の様子
宣言だけ箱はあるが、中身はまだ決まっていない
初期化済み箱があり、中に最初の値も入っている

たとえば、ある変数が最初から 3 で始まると決まっているなら、宣言と同時に 3 を入れておくほうが自然です。

鬼殺隊風に言えば、任務に出る前から「この箱には回復薬を3つ入れておく」と決まっているなら、出発前に入れておいたほうが安心です。あとから別の場所で入れるより、最初の準備としてまとめておくほうがわかりやすくなります。

初期化を使うと、コードを見た人も「この変数はどんな値から始まるのか」をすぐに読み取れます。これは、コードの読みやすさにもつながります。

初期化は値の入れ忘れを防ぎやすい

初期化が便利な理由のひとつは、値の代入忘れを防ぎやすいことです。

宣言と代入を分けて書くと、変数を宣言しただけで安心してしまい、そのあとに値を入れる文を書き忘れることがあります。特に学習の初期段階では、このミスが起こりやすいです。

書き方起こりやすいこと
宣言だけしてあとで代入する値を入れる前に使ってしまう可能性がある
初期化する宣言と同時に値が入るので、入れ忘れを防ぎやすい

鬼殺隊の任務で考えると、空の道具箱だけ持って出発してしまい、必要な札や薬を入れ忘れるようなものです。任務中に箱を開けても中身がなければ、使うことができません。

初期化を使えば、最初から箱に値が入っています。変数を使い始める時点で中身が決まっているため、安心して扱いやすくなります。

最初の値が決まっている変数なら、できるだけ初期化しておくと、コードの意図も伝わりやすくなります。

値を入れないまま使おうとするとエラーになる

Javaでは、mainメソッドの中で宣言した変数に値を入れないまま使おうとすると、コンパイルエラーになります。

これは、Javaが「その変数の中身がまだ決まっていない」と判断するためです。

宣言だけした変数は、箱だけが用意された状態です。まだ中に値が入っていません。その状態で「箱の中身を見せてください」と言われても、見せる値がありません。

鬼殺隊風にたとえるなら、空の道具箱を隊長に見せて「この中身を報告します」と言っているようなものです。箱は存在していますが、中身が決まっていないので、報告できません。

状態Javaの扱い
変数を宣言しただけ値が決まっていない
値を代入した使える状態になる
初期化した最初から使いやすい状態になる
値なしで使おうとするコンパイルエラーになる

このしくみは、少し厳しく感じるかもしれません。

しかし、実はとても親切です。値が入っていない変数をそのまま使うと、結果があいまいになったり、予想外の動作につながったりする可能性があります。Javaは、そのようなミスを早い段階で見つけてくれます。

なぜエラーになるのかをイメージで理解する

値を入れていない変数を使おうとするとエラーになる理由は、その変数の中身がまだ確定していないからです。

変数は箱のようなものです。ただし、箱があるだけでは意味がありません。中に何が入っているのかが決まっていて、はじめて値として使えます。

変数の状態箱のイメージ使えるか
宣言だけ空の箱安心して使えない
代入後値が入った箱使える
初期化後最初から値入りの箱使える

Javaは、値が確定していない変数を使わせないことで、プログラムの安全性を高めています。

鬼殺隊の修行で言えば、技を出す前に刀を持っているか確認するようなものです。刀を持っていない状態で技を出そうとすると危険です。Javaも同じで、値がない状態で変数を使わせないようにしています。

この考え方がわかると、初期化の意味がよりはっきりします。初期化は、変数を最初から安全に使いやすい状態にするための方法です。

図:初期化は宣言と代入を同時に行う

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

この図が示していること

この図は、int num = 3; という1文で、変数 num の宣言と、値 3 の代入が同時に行われることを示しています。

num という箱が用意されるだけでなく、その箱の中に最初から 3 が入っています。つまり、変数を使い始める時点で中身が明確になっています。

この図から分かること

初期化は、単に短く書くための工夫ではありません。

変数を最初から値入りの状態にすることで、使い始めの値がはっきりします。これにより、コードが読みやすくなり、値の入れ忘れも防ぎやすくなります。

宣言だけの状態と初期化した状態の違い

初期化を理解するには、宣言だけの状態と、初期化した状態を比べるとわかりやすいです。

状態変数の様子鬼殺隊風のイメージ
宣言だけ変数の場所は用意されているが、値はまだ決まっていない空の道具箱
初期化した状態変数の場所が用意され、最初の値も入っている任務札入りの道具箱

宣言だけでも、変数の箱は用意されています。しかし、中に値が入っていないため、そのままでは安心して使えません。

一方、初期化した変数は、最初から値が入っています。そのため、その変数がどんな値から始まるのかをすぐに読み取れます。

int num;

これは、num という箱を用意した状態です。

int num = 3;

これは、num という箱を用意し、その中に 3 を入れた状態です。

書き方箱の状態
int num;箱だけがある
int num = 3;箱の中に 3 が入っている

この違いをしっかり押さえておくと、初期化の意味がかなり明確になります。

図:宣言だけと初期化を比べる

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

この図が示していること

この図は、宣言だけの変数と、初期化された変数の違いを示しています。

左側の宣言だけの状態では、変数の箱はありますが、中に値が入っていません。右側の初期化された状態では、変数の箱があり、その中に最初の値が入っています。

この図から分かること

初期化を使うと、変数の最初の状態がはっきりします。

変数は使う前に値が決まっていることが大切です。初期化しておけば、変数を用意した時点で値も入っているため、コードを読む人にも意図が伝わりやすくなります。

初期化はコードを読みやすくする

初期化は、エラーを防ぐだけでなく、コードを読みやすくする効果もあります。

変数の宣言と代入が離れた場所に書かれていると、その変数が最初にどんな値を持ったのかを追いかける必要があります。短いコードなら問題になりにくいですが、コードが長くなるほど、最初の値を探すのが大変になります。

初期化されていれば、変数が宣言されたその場で最初の値がわかります。

書き方読みやすさ
宣言と代入が離れている最初の値を探す必要がある
初期化している宣言された場所で最初の値がわかる

鬼殺隊の任務書でたとえるなら、「薬箱を用意する」とだけ書かれていて、薬が何個入っているのかが別のページに書かれていると、確認に時間がかかります。

しかし、「薬箱:回復薬3個入り」と書かれていれば、ひと目で状態がわかります。

Javaの初期化も同じです。変数がどんな値から始まるのかを、その場で読み取れるため、コード全体が整理されて見えます。

初期化は最初の値を決めること

初期化とは、変数の最初の値を決めることです。

変数は、その後で別の値に変わることもあります。けれども、使い始める時点では、まず最初の値が必要です。

観点内容
初期化の目的変数の最初の値を決める
変数の状態最初から値を持っている
コード上の意味その変数がどの値から始まるか明確になる

ここで大切なのは、初期化は単なる省略ではないということです。

宣言と代入を1文にまとめて短く書けるという便利さもありますが、それ以上に「この変数はこの値から始まります」と明確に示す意味があります。

鬼殺隊風に言えば、任務開始時の装備を決めるようなものです。最初に何を持って出発するのかが明確なら、その後の動きも安定します。

Javaでも、変数の最初の値がはっきりしていると、その後の処理を安心して読めます。

変数の初期化を身につけると次の学習が楽になる

変数の初期化を理解しておくと、この先に学ぶ内容も理解しやすくなります。

たとえば、計算を行うときには、最初の値を入れた変数を使うことがあります。繰り返し処理では、数を数えるための変数を最初の値から始める場面もあります。入力処理では、受け取った値を変数に入れて使うこともあります。

今後学ぶ内容初期化とのつながり
計算最初の値をもとに計算を進める
カウンタ数を数える変数を決まった値から始める
入力処理入力された値を変数に入れて使う
条件分岐変数の値をもとに判断する
繰り返し変数の値を更新しながら処理する

初期化を学ぶことで、「変数は使う前に適切な値を持っている必要がある」という感覚が自然に身につきます。

この感覚は、Javaを学ぶうえでとても大切です。

宣言は箱を用意すること。
代入は箱に値を入れること。
初期化は、箱を用意すると同時に最初の値を入れること。

この3つの違いを押さえておくと、Javaのコードがより自然に読めるようになります。

初期化を意識すると変数の流れが見えやすくなる

変数を読むときは、「いつ用意され、いつ値が入り、どの値から使われ始めるのか」を意識することが大切です。

初期化を使うと、この流れの最初がとてもはっきりします。

見るポイント確認すること
変数は宣言されているか箱が用意されているか
初期化されているか最初の値が入っているか
代入されているか途中で値が変わっているか
使用されているか中身の値が利用されているか

鬼殺隊の修行でいえば、初期化は「任務開始時の構え」を整えることです。最初の構えが安定していれば、その後の動きも追いやすくなります。

Javaの変数も同じです。最初の値がはっきりしていると、後続の処理が読みやすくなります。

初期化は、変数を安全に、わかりやすく使うための基本です。宣言と代入を学んだあとに、この初期化の考え方を身につけることで、Javaの変数操作がさらに理解しやすくなります。