0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Java入門】第4章 変数と型

0
Last updated at Posted at 2026-10-30

プログラムでは、社員の名前や年齢のような値を、名前を付けて覚えておきます。これが 変数 です。Java では、変数に入れる値の種類(型)を必ず書きます。この章では、変数の使い方と、この教材で使う型、値の計算に使う演算子を学びます。

この章で学ぶこと

  • 変数の宣言、代入、初期化
  • 基本型(int・long・double・float・boolean)と String
  • 計算の演算子と、整数の割り算の決まり
  • 型の自動変換
  • 値を変えられない変数(定数)と final

4.1 この章で作るもの

この章では、ch04 パッケージに練習用のクラス Variable を作ります。章の最後には、実行するとコンソールに次のように表示されるようになります。

コンソール
雷禅 海皇さんは26歳です
1年後は27歳です
社員の数:3人
売上:12345678900円
平均年齢:25.666666666666668歳
在籍中:true
年齢の合計:77
3人の平均(整数):25
3人の平均(小数):25.666666666666668
3 を 2 で割った余り:1
年齢の上限:99
ファイル 作業 内容
ch04/Variable.java 新規 変数・型・演算子を確かめる練習用のクラス

4.2 Variable.java を作る

  1. src を右クリックし、新規 → パッケージ で ch04 パッケージを作ります。

  2. ch04 パッケージを右クリックし、新規 → クラス で、名前 Variable、「public static void main(String[] args)」に チェックを入れて クラスを作ります。

  3. // TODO の行を消して、緑の行を入力します。

    ch04/Variable.java
    package ch04;
    
    public class Variable {
    
        public static void main(String[] args) {
            String name = "雷禅 海皇";
            int age = 26;
            System.out.println(name + "さんは" + age + "歳です");
            age = age + 1;
            System.out.println("1年後は" + age + "歳です");
        }
    
    }
    
  4. 保存して実行します。

    コンソール
    雷禅 海皇さんは26歳です
    1年後は27歳です
    

4.3 変数の宣言と代入

変数 は、値を入れておく名前付きの入れ物です。変数を使うには、まず 宣言 します。宣言は、型 と 変数名 を並べて書きます。

書き方
型 変数名 = 値;          // 宣言と同時に値を入れる(初期化)
型 変数名;               // 宣言だけ
変数名 = 値;             // 後から値を入れる(代入)
コード 意味
String name = "雷禅 海皇"; String(文字列)型の変数 name を宣言し、"雷禅 海皇" を入れる
int age = 26; int(整数)型の変数 age を宣言し、26 を入れる
age = age + 1; age の今の値(26)に 1 を足した結果(27)を、age に入れ直す

= は「等しい」ではなく、「右の値を左の変数に入れる」という意味です(代入)。age = age + 1; は、数学では成り立ちませんが、Java では「右を先に計算して、左に入れる」と読みます。変数に入れた値は、別の値を代入するまで変わりません。

変数名の決まり

  • 英字で始め、英字・数字・_ を使う。name、age、deptId、birthDate
  • 2つ以上の単語をつなぐときは、2つ目からの単語の先頭を大文字にする(birthDate、empId)。この書き方を キャメルケース という
  • 先頭は小文字にする(クラス名は大文字で始めるので、見分けやすくなる)
  • 大文字と小文字は区別される。age と Age は別の変数
  • int・class・public のような、Java で意味が決まっている言葉(予約語)は使えない

【ご注意】同じ名前の変数は、同じブロックの中で2回宣言できない

int age = 26; と書いた後に、もう一度 int age = 27; と書くと、「重複ローカル変数 age」というエラーになります。値を変えたいときは、型を付けずに age = 27; と代入だけを書きます。

【ご注意】値を入れる前の変数は使えない

int age; と宣言しただけで値を入れずに System.out.println(age); と書くと、「ローカル変数 age が初期化されていない可能性があります」というエラーになります。宣言と同時に値を入れる(初期化する)習慣を付けましょう。

4.4 基本型

Java の型には、基本型(数や真偽の値をそのまま持つ型)と、参照型(クラスの型など。第8章)があります。この教材で使う基本型は、次の5つです。

型 入れられる値 書き方の例 使いどころ
int 整数(約 −21億 〜 21億) int age = 26; 年齢、人数、ID など、ほとんどの整数
long 大きな整数(約 ±922京) long sales = 12345678900L; int に入りきらない整数。値の最後に L を付ける
double 小数 double average = 25.5; 平均、割合など。小数は、ふつう double を使う
float 小数(double より精度が低い) float rate = 0.5F; 値の最後に F を付ける。この教材では使わない
boolean true(真)か false(偽) boolean working = true; 「はい/いいえ」の2択。条件分岐(第5章)で使う
  1. Variable.java に緑の行を書き足します。

    ch04/Variable.java
    package ch04;
    
    public class Variable {
    
        public static void main(String[] args) {
            String name = "雷禅 海皇";
            int age = 26;
            System.out.println(name + "さんは" + age + "歳です");
            age = age + 1;
            System.out.println("1年後は" + age + "歳です");
    
            int count = 3;
            long sales = 12345678900L;
            double average = 77 / 3.0;
            boolean working = true;
            System.out.println("社員の数:" + count + "人");
            System.out.println("売上:" + sales + "円");
            System.out.println("平均年齢:" + average + "歳");
            System.out.println("在籍中:" + working);
        }
    
    }
    
  2. 保存して実行します。

    コンソール
    雷禅 海皇さんは26歳です
    1年後は27歳です
    社員の数:3人
    売上:12345678900円
    平均年齢:25.666666666666668歳
    在籍中:true
    

12345678900 は int の範囲(約21億)を超えているので、long に入れます。このとき、値の最後に L を付けます。L を付けないと、「型 int のリテラル 12345678900 は範囲外です」というエラーになります。

【知識メモ】リテラル

26、12345678900L、25.5、true、"雷禅 海皇" のように、コードに直接書いた値を リテラル といいます。整数のリテラルは int、小数のリテラルは double として扱われます。そのため、long には L、float には F を付けて、型を変えます。Spring入門では 1L という書き方が出てきます(第9章の定数で使います)。

【知識メモ】ほかの基本型

Java には、ほかに byte・short(小さな整数)と char(1文字)があります。この教材と Spring入門では使いません。

4.5 String

String は、文字列を入れる型です。基本型ではなく、クラス です(クラスは第8章で学びます)。String のようなクラスの型や配列の型は、参照型 といいます。参照型の変数が値をどのように持つかは、8.6「参照」で説明します。クラスの名前は大文字で始めるという決まりがあるので、String の S も大文字です。

String の値は " で囲んで書きます。文字が1つもない ""(空文字列)も、文字列です。文字列どうしは + でつなげられ、数や boolean を + でつなぐと、それらも文字列になります(第3章 3.5)。

例
String firstName = "海皇";
String lastName = "雷禅";
String fullName = lastName + " " + firstName;     // "雷禅 海皇"
String message = fullName + "さんは" + 26 + "歳";  // "雷禅 海皇さんは26歳"

文字列の比較や、文字数を調べる方法は、第5章で学びます。

4.6 演算子

計算の演算子

数の計算には、次の 演算子 を使います。

演算子 意味 例 結果
+ 足す 26 + 27 + 24 77
- 引く 27 - 26 1
* 掛ける 3 * 4 12
/ 割る 77 / 3 25(整数どうしは小数点以下を切り捨て)
% 割った余り 3 % 2 1
  1. Variable.java に緑の行を書き足します。

    ch04/Variable.java(main メソッドの後半)
            System.out.println("在籍中:" + working);
    
            int total = 26 + 27 + 24;
            System.out.println("年齢の合計:" + total);
            System.out.println("3人の平均(整数):" + total / 3);
            System.out.println("3人の平均(小数):" + total / 3.0);
            System.out.println("3 を 2 で割った余り:" + 3 % 2);
        }
    
    }
    
  2. 保存して実行します。

    コンソール(後半)
    年齢の合計:77
    3人の平均(整数):25
    3人の平均(小数):25.666666666666668
    3 を 2 で割った余り:1
    

【ご注意】整数どうしの割り算は、小数点以下が切り捨てられる

77 / 3 は、int どうしの計算なので、結果も int の 25 になります。小数の結果がほしいときは、77 / 3.0 のように、どちらかを小数にします。int と double の計算は、int が自動で double に変換されてから行われ、結果は double になります。

計算の順番は、算数と同じです。*・/・% が +・- より先に行われ、( ) で囲んだ部分が最も先に行われます。"3人の平均(整数):" + total / 3 では、/ が + より先なので、total / 3 が計算されてから文字列につながります。

代入を短く書く演算子

「変数の今の値に足して、入れ直す」という処理はよく使うので、短く書く演算子があります。

書き方 同じ意味
age += 1; age = age + 1;
total -= 10; total = total - 10;
age++; age = age + 1;(1 だけ足すとき)
age--; age = age - 1;(1 だけ引くとき)

++ は、第6章の繰り返しで回数を数えるときによく使います。

型の自動変換

小さい範囲の型の値は、大きい範囲の型の変数に、そのまま代入できます。int の値を long や double の変数に入れるときは、自動で変換されます。

例
int age = 26;
long bigAge = age;        // int → long は自動で変換される
double realAge = age;     // int → double も自動で変換される(26.0 になる)
int back = realAge;       // double → int はエラー(小数点以下が失われるため)

【知識メモ】キャスト

小数を無理に整数にしたいときは、int back = (int) realAge; のように、値の前に (型) を書きます。これを キャスト といい、小数点以下は切り捨てられます。この教材と Spring入門では使いません。

4.7 定数と final

年齢の上限のように、プログラムの中で値を変えてはいけないものには、宣言に final を付けます。final を付けた変数を 定数 といい、後から代入しようとするとエラーになります。

  1. Variable.java の main メソッドの最後に、緑の行を書き足します。

    ch04/Variable.java(main メソッドの最後)
            System.out.println("3 を 2 で割った余り:" + 3 % 2);
    
            final int MAX_AGE = 99;
            System.out.println("年齢の上限:" + MAX_AGE);
        }
    
    }
    
  2. 保存して実行します。最後に、次のように表示されます。

    コンソール(最後の行)
    年齢の上限:99
    
  3. 試しに、MAX_AGE = 100; という行を書き足してみてください。「final のローカル変数 MAX_AGE には代入できません」というエラーになります。確かめたら、その行は消します。

定数の名前は、ふつうの変数と区別するために、MAX_AGE のように すべて大文字にして、単語を _ でつなぐ 決まりです。

【便利な使い方】値に名前を付ける

99 という数がコードの中に直接書いてあると、後で読む人には、それが何の数なのか分かりません。MAX_AGE という名前を付けておけば、意味が分かり、上限を変えるときも1か所を直すだけで済みます。Spring入門では、クラスの定数として private static final long serialVersionUID = 1L; という行が出てきます。static の意味は第9章で学びます。

4.8 うまくいかないときは

症状 考えられる原因と対処
「型の不一致: double から int には変換できません」 小数の値を int の変数に入れようとしています。変数の型を double にするか、値を整数にしてください。
「型 int のリテラル 12345678900 は範囲外です」 int に入らない大きな数です。変数を long にして、値の最後に L を付けてください。
「重複ローカル変数 age」 同じ名前の変数を2回宣言しています。2回目は型を付けず、age = 27; のように代入だけを書いてください。
「ローカル変数 age が初期化されていない可能性があります」 値を入れる前に変数を使っています。宣言と同時に値を入れてください。
「age を変数に解決できません」 宣言していない名前を使っているか、名前の大文字と小文字が違います。宣言した行と比べてください。
平均が 25 になり、小数にならない 整数どうしの割り算です。total / 3.0 のように、どちらかを小数にしてください。

ほかのコンパイルエラーは、付録A「よくあるコンパイルエラー」 も参考にしてください。

4.9 まとめと確認問題

まとめ

  • 変数 は 型 変数名 = 値; で宣言する。= は「右の値を左に入れる」(代入)
  • 整数は int、大きな整数は long(値に L)、小数は double(float は値に F)、真偽は boolean(true/false)、文字列は String
  • 変数名はキャメルケース(birthDate)、定数名はすべて大文字(MAX_AGE)、クラス名は大文字で始める(String)
  • 計算は + - * / %。整数どうしの / は小数点以下を切り捨てる。+=、++ で代入を短く書ける
  • int → long → double の向きには自動で変換される。逆はエラー
  • final を付けた変数は 定数。後から値を変えられない

この章で使った書き方は、付録B「文法早見表」の「変数と型」 にまとめています。

確認問題

問1 「京都府」という文字列を入れる変数 address を宣言して、値を入れるコードを書いてください。

解答を見る

String address = "京都府";

問2 次のコードを実行すると、age の値はいくつになりますか。
int age = 26;
age = age + 1;
age++;

解答を見る

28 です。26 に 1 を足して 27、++ でさらに 1 足して 28 になります。

問3 System.out.println(7 / 2); と System.out.println(7 / 2.0); は、それぞれ何と表示しますか。

解答を見る

3 と 3.5 です。整数どうしの割り算は小数点以下が切り捨てられ、どちらかが小数なら小数の結果になります。

問4 long count = 3000000000; はエラーになります。どう直せばよいですか。

解答を見る

値の最後に L を付けて、long count = 3000000000L; と書きます。L が無いと、値が int のリテラルとして扱われ、範囲外になります。

問5 final を付けた変数に、後から値を代入するとどうなりますか。

解答を見る

コンパイルエラーになります。final を付けた変数(定数)は、最初に入れた値から変えられません。


前へ

第3章 プログラムの基本の形

次へ

第5章 条件分岐

目次へ

【Java入門】目次

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?