var練習問題リスト
- 基本の宣言
varを使って整数、文字列、小数をそれぞれ変数に代入して表示してみましょう。
例:年齢(int)、名前(String)、身長(double)
- 計算してみる
varで宣言した整数を使って、足し算・引き算・掛け算・割り算をして結果を表示してみましょう。- 小数を含む計算をして、結果の型がどうなるか確認してみましょう。
- リストを使う
varを使ってArrayList<String>を作り、好きな果物を3つ追加して、for文で表示してみましょう。
- Mapを使う
varを使ってHashMap<String, Integer>を作り、果物と値段を登録して、拡張for文で「果物 : 値段」と表示してみましょう。
- エラーを体験する
var x;のように初期化せずに宣言してみて、なぜエラーになるか確認しましょう。var y = null;を試して、なぜエラーになるか確認しましょう。var a = 10, b = 20;を試して、なぜエラーになるか確認しましょう。
- 型を推測してみる
var price = 120;の型は何になるか?var tax = 120 * 0.1;の型は何になるか?- 実際に
System.out.println(((Object)tax).getClass().getName());で確認してみましょう。
ポイント
varは「便利な省略記法」だけど、型が見えにくくなることもある- 練習では「型がどう推論されるか」を意識して確認すると理解が深まります
👉 これらを順番にやっていくと、varのルールと使いどころが自然に身につきます。
では、先ほど挙げた「初心者向け var 練習問題」に対して、模範解答コードと解説をつけてまとめます。
1. 基本の宣言
class Sample1 {
public static void main(String[] args) {
var age = 18; // int型
var name = "Hanako"; // String型
var height = 160.5; // double型
System.out.println("名前: " + name);
System.out.println("年齢: " + age);
System.out.println("身長: " + height);
}
}
Java解説
18→ 整数リテラルなのでint型"Hanako"→ 文字列なのでString型160.5→ 小数なのでdouble型
2. 計算してみる
class Sample2 {
public static void main(String[] args) {
var a = 10; // int型
var b = 3; // int型
var sum = a + b; // int型
var div = a / b; // int型(整数同士の割り算は小数点以下切り捨て)
var div2 = a / 3.0; // double型(小数を含むのでdouble)
System.out.println("合計: " + sum);
System.out.println("整数割り算: " + div);
System.out.println("小数割り算: " + div2);
}
}
Java解説
- 整数同士の割り算は
int型で小数点以下は切り捨て - 小数を含めると
double型になる
3. リストを使う
import java.util.ArrayList;
class Sample3 {
public static void main(String[] args) {
var fruits = new ArrayList<String>(); // ArrayList<String>型
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
for (var fruit : fruits) { // fruitはString型
System.out.println(fruit);
}
}
}
Java解説
new ArrayList<String>()から型が推論されるので、fruitsはArrayList<String>型- 拡張for文の
fruitも自動的にString型になる
4. Mapを使う
import java.util.HashMap;
class Sample4 {
public static void main(String[] args) {
var prices = new HashMap<String, Integer>(); // HashMap<String, Integer>型
prices.put("Apple", 100);
prices.put("Banana", 200);
for (var entry : prices.entrySet()) { // entryはMap.Entry<String, Integer>型
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
}
Java解説
HashMap<String, Integer>の型が長いのでvarが便利entryの型はMap.Entry<String, Integer>だが、varで省略できる
5. エラーを体験する
class Sample5 {
public static void main(String[] args) {
// var x; // エラー!初期化が必要
// var y = null; // エラー!型が決められない
// var a = 10, b = 20; // エラー!複数同時宣言は不可
}
}
Java解説
varは必ず初期化が必要nullだけでは型が決まらない- 複数同時宣言はできない
6. 型を推測してみる
class Sample6 {
public static void main(String[] args) {
var price = 120; // int型
var tax = 120 * 0.1; // double型
System.out.println("priceの型: " + ((Object)price).getClass().getName());
System.out.println("taxの型: " + ((Object)tax).getClass().getName());
}
}
Java👉 出力例
priceの型: java.lang.Integer
taxの型: java.lang.Double
解説
- 整数リテラルは
int型 →Integerとして表示される 120 * 0.1は小数を含むのでdouble型 →Doubleとして表示される
総まとめ
varは「型を省略できる便利な書き方」- ただし「必ず初期化」「型が分かる値を代入」「複数同時宣言は不可」などルールがある
- 特に 型が長いとき・for文・Mapやリストの処理 で役立つ
