練習問題(全10問) — Javaのvar基礎チェック
ここでは 「Java 10から使える var(型推論)」 に関する
練習問題10問 + 解答・解説付き
をプログラミング初心者向けにやさしくまとめます。
【問題1】
次のコードで a の型は何でしょう?
var a = 10;
Java✅ 解答
int
💬 解説
整数リテラル 10 は int 型なので、a は自動的に int 型になります。
(Javaでは整数リテラルはデフォルトで int です)
【問題2】
次のコードをコンパイルしたらどうなりますか?
var x;
x = 10;
Java✅ 解答
コンパイルエラー。
💬 解説
var では 宣言と同時に初期化が必須。
代入しないと型を推論できないため、エラーになります。
【問題3】
次のコードの name の型を答えなさい。
var name = "Tanaka";
Java✅ 解答
String
💬 解説
文字列リテラル "Tanaka" は String 型なので、name は String 型になります。
【問題4】
次のコードの num の型を答えなさい。
var num = 3.14;
Java✅ 解答
double
💬 解説
小数リテラルはデフォルトで double 型になります。
もし float にしたい場合は 3.14F と書きます。
【問題5】
次のコードの num の型を答えなさい。
var num = 3.14F;
Java✅ 解答
float
💬 解説
末尾の F が付いていると、リテラルは float 型として扱われます。
【問題6】
次のコードをコンパイルするとどうなりますか?
var data = null;
Java✅ 解答
コンパイルエラー。
💬 解説
null だけでは型が特定できません。var では「値」から型を決める必要があるので、null は不可です。
【問題7】
次のコードをコンパイルするとどうなりますか?
var a = 1, b = 2;
Java✅ 解答
コンパイルエラー。
💬 解説
var では複数の変数を同時に宣言できません。
個別に書く必要があります:
var a = 1;
var b = 2;
【問題8】
次のコードの num の型を答えなさい。
var num = 100L;
Java✅ 解答
long
💬 解説
末尾に L を付けた整数リテラルは long 型です。int より大きな整数を扱うときに使います。
【問題9】
次のコードはコンパイルできますか?
var list = new ArrayList<String>();
list.add("Apple");
list.add("Banana");
Java✅ 解答
コンパイル可能。
💬 解説
右辺の new ArrayList<String>() から型が ArrayList<String> と推論されます。list は ArrayList<String> 型として扱われます。
【問題10】
次のプログラムを実行すると、出力はどうなりますか?
class Test {
public static void main(String[] args) {
var x = 5;
var y = 2.0;
var result = x * y;
System.out.println(result);
}
}
Java✅ 解答
10.0
💬 解説
x は int、y は double。int * double の結果は double 型に自動変換されます。
よって result は double 型となり、10.0 が表示されます。
まとめ(重要ポイント)
| 覚えておきたいルール | 内容 |
|---|---|
| 宣言時に初期化が必須 | var x; はエラー |
null 初期化は不可 | 型が推論できない |
| 複数同時宣言不可 | var a = 1, b = 2; はエラー |
| 推論された型は固定 | 一度決まったら他の型を代入できない |
| ローカル変数のみ使用可 | フィールドや引数では使えない |
おすすめ練習(追加チャレンジ)
次のようなコードを書いて、どんな型になるか実際に System.out.println() で確認してみましょう。
class VarPractice {
public static void main(String[] args) {
var num = 123;
var text = "Hello";
var price = 999.99;
var flag = true;
var ch = 'A';
System.out.println(num + " → " + ((Object)num).getClass().getSimpleName());
System.out.println(text + " → " + ((Object)text).getClass().getSimpleName());
System.out.println(price + " → " + ((Object)price).getClass().getSimpleName());
System.out.println(flag + " → " + ((Object)flag).getClass().getSimpleName());
System.out.println(ch + " → " + ((Object)ch).getClass().getSimpleName());
}
}
Java実行すると、それぞれの型(Integer, String, Double, Boolean, Character)が出力されます!
自分の目で確かめると理解が一気に深まります。
