変数の宣言と代入
4.4 変数の宣言と代入
ここからはいよいよ、プログラムの中でどのように変数を扱うかを学んでいきます。
前述したように、1つの変数には決まったデータ型のデータしか入りません。
下の図4.4.2のように、int型の変数にはint型の値(整数)、char型の変数にはシングルクォーテーションで囲った1文字しか入れることができません。

図4.4.1 正しい変数宣言の例

図4.4.2 正しくない変数宣言の例
プログラムでは変数を使う前に、「変数の名前」と「変数の型」を指定する必要があります。これを変数の宣言と言います。
変数の宣言の基本構文は下記の通りです。
書式:変数宣言
型名 変数名 ;
凡例:変数宣言
int x ;
例えば、凡例の場合は図 4.4.3のようなイメージになります。

図4.4.3 変数宣言(メモリ領域の確保)
変数を宣言すると、コンピュータのメモリ上にデータを保存する領域が確保されます。これで値を入れる「箱」ができるわけですが、この状態ではまだ箱の中は空のままです。
箱(変数)の中に値を入れるには代入演算子「=」を使用します。
基本構文は下記の通りです。
書式:変数へ値の代入
変数名 = 値 ;
凡例:変数へ値の代入
x = 10 ;
例えば、int型の変数xを宣言した後、10という値を代入する場合は図 4.4.4のようなイメージになります。

図4.4.4 変数の値の代入
また、変数の宣言と初期化を同時に行うこともできます。
書式:変数宣言と同時に初期化
型名 変数名 = 値 ;
凡例:変数宣言と同時に初期化
int x = 10 ;
これは例えば、int型の変数xを宣言し、同時に10を代入する場合などです。

図4.4.5 変数宣言と初期化
下記の2つの書き方は、どちらも同じことを行っています。
方法① :変数の宣言と代入を別に行う。
方法② :変数の宣言と代入を同時に行う (変数の初期化という)
◉変数の初期化とは変数に対して初めて値を代入することを、「変数の初期化」と言います。
4.4.1 変数を宣言し、値を代入するプログラム
String型、int型の変数を宣言し、各変数に値を代入して結果を画面に出して変数に値が入ることを確認してみましょう。
① ソース・フォルダー :myproj_super_intro/src
② パッケージ :jp.co.f1.superintro.ch04
③ 名前 :Variable
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる
➢ Variable.java
1 | package jp.co.f1.superintro.ch04; |
2 |
3 | public class Variable { |
4 |
5 | public static void main(String[] args) { |
6 | |
7 | //タイトル |
8 | String title; |
9 | title = "Java超入門"; |
10 | |
11 | //価格 |
12 | int price; |
13 | price = 3000; |
14 | |
15 | System.out.print("本のタイトルは"); |
16 | System.out.print(title); |
17 | System.out.println("です。"); |
18 | |
19 | System.out.println(); |
20 | |
21 | System.out.print("本の価格は"); |
22 | System.out.print(price); |
23 | System.out.println("円です。"); |
24 | |
25 | } |
26 | |
27 | } |
実行結果
解説
このプログラムでは、2つの変数を宣言し、それぞれに値を代入しています。また、その値をコンソールに表示させています。
8行目でString型の変数titleを宣言しています。この時のイメージは図 4.4.6になります。9行目では、宣言した変数titleに「Java超入門」という文字列の値を代入しています。

図4.4.6 String型の変数titleの宣言時
12行目では、int型の変数priceを宣言しています。そして、13行目で変数priceに「3000」という値を代入しています。12行目のイメージは図 4.4.7、13行目は図 4.4.8になります。

図4.4.7 int型の変数priceの宣言

図4.4.8 変数priceへの値の代入
続いて15~17行目までの3行の記述で「本のタイトルはJava超入門です。」という一行を表示させています。
15行目以降の「System.out.print()メソッド」と「System.out.println()メソッド」は共に、括弧の間の情報をコンソール画面に表示させるメソッドです。
・System.out.print()メソッド:括弧の間の情報を画面に表示する。
・System.out.println()メソッド:括弧の間の情報を画面に表示し、「改行」を行います。
printlnは、プリントラインまたはプリントエルエヌなどと呼ばれ、本テキストではプリントラインと呼ぶことにします。printlnの「ln」は「line」の略で、「改行するライン」という意味があります。
15行目はSystem.out.printメソッドの後ろの括弧の間に入れた「本のタイトルは」を画面に表示します。その次の16行目でSystem.out.printメソッドの後ろの括弧の間に入れた変数titleの値を表示させています。変数titleは「Java超入門」という参照型の値が代入されているので、「Java超入門」と画面に表示されます。このイメージは図 4.4.9になります。
17行目は、「System.out.printlnメソッド」を使って、「です。」という文字列を表示させた後に改行しています。

図4.4.9 変数titleの表示
19行目では「System.out.printlnメソッド」の括弧に何も入れずに改行だけを行います。基本的には括弧の間の文章を表示し改行させますが、このように改行だけをする場合にも利用できます。
15~17と同じように、21~23行目も、この3行で1つの文章を表示させています。
21行目では「本の価格は」と表示し、22行目は変数priceの値である「3000」を表示、23行目はprintlnメソッドを使って「円です。」を表示した後に改行します。22行目のイメージは図 4.4.10になります。

図4.4.10 変数priceの表示