Javaの変数・データ型を身につけるためのレベル別練習問題
Javaの変数・データ型は、読むだけではなかなか定着しません。実際に手を動かして、「どの型を使うべきか」「なぜその結果になるのか」を確認することで理解が深まります。
ここでは、int、double、boolean、char、String、型変換、var までをしっかり定着させるために、レベル別の練習問題を用意しました。簡単な確認問題から、少し考える応用問題まで順番に取り組める構成にしています。
すべて、問題、解答、解説の順でそのまま学習に使える形でまとめています。WordPressに貼りやすいよう、連続改行ではなく見出しと <li> を使って整理しています。
レベル1:まずは型の役割に慣れる基礎問題
問題1:整数を変数に入れて表示する
age という名前の変数を作り、18 を代入して表示してください。
解答
public class Main {
public static void main(String[] args) {
// 年齢を表す整数の変数
int age = 18;
// 値を表示する
System.out.println(age);
}
}Java解説
この問題では、int が整数を扱う型であることを確認します。年齢や個数のように、小数を含まない数は int を使うのが基本です。
初心者のうちは、「この値は整数なのか、小数なのか」を毎回意識することが大切です。
問題2:小数を変数に入れて表示する
height という名前の変数を作り、165.5 を代入して表示してください。
解答
public class Main {
public static void main(String[] args) {
// 身長を表す小数の変数
double height = 165.5;
// 値を表示する
System.out.println(height);
}
}Java解説
double は小数を扱う型です。身長、体重、平均、温度など、小数が必要な値には double を使います。
int に 165.5 を入れることはできません。小数が含まれている時点で、double が必要です。
問題3:真偽値を使ってみる
isStudent という名前の変数を作り、true を代入して表示してください。
解答
public class Main {
public static void main(String[] args) {
// 学生かどうかを表す真偽値の変数
boolean isStudent = true;
// 値を表示する
System.out.println(isStudent);
}
}Java解説
boolean は true または false の2つだけを扱う型です。条件分岐で非常によく使うので、早めに慣れておくことが重要です。
「はい・いいえ」で答えられる状態は boolean で表せる、と考えると分かりやすいです。
問題4:1文字を扱う
grade という名前の変数を作り、A を代入して表示してください。
解答
public class Main {
public static void main(String[] args) {
// 成績を表す1文字の変数
char grade = 'A';
// 値を表示する
System.out.println(grade);
}
}Java解説
char は1文字だけを扱う型です。ここで重要なのは、char はシングルクォート ' ' で囲むことです。
"A" と書くと String になってしまいます。'A' と "A" は別物なので、ここはしっかり区別してください。
問題5:文字列を扱う
name という名前の変数を作り、"Sato" を代入して表示してください。
解答
public class Main {
public static void main(String[] args) {
// 名前を表す文字列の変数
String name = "Sato";
// 値を表示する
System.out.println(name);
}
}Java解説
String は文字列を扱う型です。char が1文字なのに対して、String は複数文字をまとめて扱えます。
名前、住所、メッセージなど、人が読む文字情報は基本的に String です。
レベル2:計算や連結に慣れる問題
問題6:整数同士の計算
a に 10、b に 3 を代入し、足し算の結果を表示してください。
解答
public class Main {
public static void main(String[] args) {
// 2つの整数を用意する
int a = 10;
int b = 3;
// 足し算の結果を表示する
System.out.println(a + b);
}
}Java解説
int 同士なら整数として計算されます。まずは、変数を使って計算できることに慣れるのが目的です。
余裕があれば、引き算、掛け算、割り算にも変えて試してみると理解が深まります。
問題7:文字列を連結する
lastName に "田中"、firstName に "太郎" を入れ、フルネームとして表示してください。
解答
public class Main {
public static void main(String[] args) {
// 姓と名を文字列で用意する
String lastName = "田中";
String firstName = "太郎";
// 文字列を連結して表示する
System.out.println(lastName + firstName);
}
}Java解説
String は + でつなげることができます。これを文字列の連結といいます。
Javaでは + が「足し算」と「文字列の連結」の両方に使われるので、今どちらが行われているのか意識することが大切です。
問題8:文字列と数値を一緒に表示する
name に "Yamada"、age に 20 を入れ、Yamadaさんは20歳です。 と表示してください。
解答
public class Main {
public static void main(String[] args) {
// 名前と年齢を用意する
String name = "Yamada";
int age = 20;
// 文字列と数値を組み合わせて表示する
System.out.println(name + "さんは" + age + "歳です。");
}
}Java解説
文字列と数値を + でつなぐと、数値は文字列として扱われます。これは表示文を作るときによく使う基本テクニックです。
ただし、この + は計算ではなく連結です。見た目が似ているので混乱しやすいですが、前後に文字列があるかどうかを見ると判断しやすいです。
レベル3:初心者がつまずきやすいポイントを理解する問題
問題9:int 同士の割り算を確認する
次のコードの実行結果を考えてください。
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 3;
System.out.println(a / b);
}
}Java解答
3
解説
10 / 3 なので、数学では 3.333... をイメージしがちですが、int 同士の計算結果は int になります。そのため、小数部分は切り捨てられて 3 になります。
これはJava初心者が非常によく間違える最重要ポイントです。割り算を見るときは、「何型同士で計算しているか」を必ず確認してください。
問題10:double を使って割り算する
10 ÷ 3 の結果を小数で表示してください。
解答
public class Main {
public static void main(String[] args) {
// 小数で割り算できるように double を使う
double a = 10;
double b = 3;
// 割り算の結果を表示する
System.out.println(a / b);
}
}Java解説
小数の結果を出したいなら、double を使います。int では小数部分を保持できないため、正確な割り算結果を出したい場面では double が必要です。
なお、片方だけを double にしても結果は double になります。たとえば 10.0 / 3 でも構いません。
問題11:char と String の違いを見分ける
次のうち、char として正しいものを選んでください。
- A. `”A”`
- B. `’A’`
- C. `”AB”`
解答
- B. `’A’`
解説
char は1文字だけを扱い、シングルクォートで囲みます。そのため正解は 'A' です。
"A" は1文字ですが、ダブルクォートなので String です。"AB" ももちろん String です。
この違いは文法エラーや型エラーの原因になりやすいので、確実に覚えておくべきです。
問題12:boolean の結果を考える
次のコードの実行結果を考えてください。
public class Main {
public static void main(String[] args) {
int score = 75;
boolean isPass = score >= 60;
System.out.println(isPass);
}
}Java解答
true
解説
score >= 60 は「score は 60 以上ですか」という比較です。75 は 60 以上なので結果は true になります。
比較式の結果は boolean になる、という考え方は今後の if 文にもつながる非常に大切な基礎です。
レベル4:型変換を身につける問題
問題13:double を int に変換する
12.8 を int に変換して表示してください。
解答
public class Main {
public static void main(String[] args) {
// 小数を用意する
double value = 12.8;
// int に変換する
int result = (int) value;
// 結果を表示する
System.out.println(result);
}
}Java解説
実行結果は 12 になります。(int) を使うと、小数部分は切り捨てられます。
ここで大事なのは、四捨五入ではないということです。12.8 だから 13 になるわけではありません。単純に小数部分が消えるだけです。
問題14:String を int に変換する
"50" という文字列を数値に変換し、10 を足した結果を表示してください。
解答
public class Main {
public static void main(String[] args) {
// 数字の文字列を用意する
String str = "50";
// 文字列を整数に変換する
int number = Integer.parseInt(str);
// 10を足して表示する
System.out.println(number + 10);
}
}Java解説
この結果は 60 になります。"50" のままでは文字列なので、計算ではなく文字の連結になってしまいます。数値として使いたいときは Integer.parseInt() が必要です。
この変換は、ユーザー入力やファイルから読み込んだ数字を扱うときに非常によく使います。
問題15:数値を文字列に変換する
int 型の 90 を文字列に変換し、"点" をつけて表示してください。
解答
public class Main {
public static void main(String[] args) {
// 点数を整数で用意する
int score = 90;
// 数値を文字列に変換する
String strScore = String.valueOf(score);
// 文字列として表示する
System.out.println(strScore + "点");
}
}Java解説
数値を文字列にしたいときは String.valueOf() が使えます。表示文を組み立てるときに便利です。
なお、この例では System.out.println(score + "点"); と直接書いても表示できますが、明示的な変換を知っておくことに意味があります。
レベル5:var を理解する問題
問題16:var を使って変数を宣言する
var を使って、名前 "Suzuki" を入れた変数を作り、表示してください。
解答
public class Main {
public static void main(String[] args) {
// var を使って文字列の変数を宣言する
var name = "Suzuki";
// 値を表示する
System.out.println(name);
}
}Java解説
この場合、右辺が "Suzuki" なので、Javaは自動的に String 型だと判断します。これを型推論といいます。
ただし、初心者のうちは var に頼りすぎず、まずは String name = "Suzuki"; のように明示して書く練習も大切です。
問題17:var で推測される型を考える
次のコードで、price は何型になるでしょうか。
var price = 1980;Java解答
int
解説
1980 は整数リテラルなので、price は int になります。
var を使っても型が消えるわけではありません。あくまで「書かなくてもJavaが決めてくれる」だけです。内部的にはちゃんと型があります。
レベル6:総合問題
問題18:自己紹介プログラムを作る
次の情報を変数に入れて、自己紹介文を表示してください。
- 名前:`”Kato”`
- 年齢:`19`
- 身長:`170.2`
- 成人かどうか:年齢から判定する
- イニシャル:`’K’`
表示形式は自由ですが、すべての情報が分かるようにしてください。
解答
public class Main {
public static void main(String[] args) {
// 名前を文字列で保存する
String name = "Kato";
// 年齢を整数で保存する
int age = 19;
// 身長を小数で保存する
double height = 170.2;
// 成人かどうかを判定する
boolean isAdult = age >= 18;
// イニシャルを1文字で保存する
char initial = 'K';
// 自己紹介の内容を表示する
System.out.println("名前: " + name);
System.out.println("年齢: " + age);
System.out.println("身長: " + height);
System.out.println("成人ですか: " + isAdult);
System.out.println("イニシャル: " + initial);
}
}Java解説
この問題は、今回学んだ主要な型をまとめて使う総合問題です。型ごとの役割を正しく理解していないと解けないため、理解度の確認に向いています。
特に重要なのは、「成人かどうか」を boolean で表す点です。単に値を入れるだけでなく、比較式から boolean を作る感覚を身につけてください。
レベル7:応用問題
問題19:文字列の数字と本当の数値の違いを確認する
次の2つのコードは、それぞれ何を表示するか答えてください。
問題コード1
public class Main {
public static void main(String[] args) {
String a = "10";
String b = "20";
System.out.println(a + b);
}
}Java解答1
1020
解説1
a も b も String なので、+ は足し算ではなく文字列の連結になります。そのため、10 と 20 がつながって 1020 になります。
問題コード2
public class Main {
public static void main(String[] args) {
int a = Integer.parseInt("10");
int b = Integer.parseInt("20");
System.out.println(a + b);
}
}Java解答2
30
解説2
こちらは文字列を int に変換してから計算しているため、普通の足し算になります。
この2つの違いを理解できるかどうかは非常に重要です。見た目が数字でも、型が String なら数値ではありません。
問題20:どの型を使うべきか考える
次のデータには、どの型を使うのが適切か答えてください。
- 商品の在庫数
- テストの平均点
- ログイン済みかどうか
- 成績評価の A
- 会員の名前
解答
- 商品の在庫数:`int`
- テストの平均点:`double`
- ログイン済みかどうか:`boolean`
- 成績評価の A:`char`
- 会員の名前:`String`
解説
この問題は、文法よりも「型の使い分け」を理解しているかを確認する問題です。Javaでは、データの性質に合った型を選ぶ力が非常に重要です。
迷ったときは次のように考えると整理しやすいです。
- 整数だけか → `int`
- 小数が必要か → `double`
- はい・いいえで表せるか → `boolean`
- 1文字だけか → `char`
- 文字の並びか → `String`
学習効果を高める使い方
これらの問題は、ただ答えを見るだけではもったいないです。次のように使うと理解が定着しやすくなります。
- まず自分で解く
- 次に解答を見る
- 解説を読んで「なぜそうなるか」を確認する
- 最後に値や変数名を変えてもう一度動かす
特におすすめなのは、「1か所だけ変える」練習です。たとえば int を double に変える、'A' を "A" に変える、"50" を "abc" に変える、といった小さな変更で結果の違いを見ると、型の理解がかなり深まります。
まとめ
Javaの変数とデータ型は、今後の学習の土台になります。練習問題では、次のポイントを特に意識してください。
- 整数なら `int`
- 小数なら `double`
- 真偽なら `boolean`
- 1文字なら `char`
- 文字列なら `String`
- 必要に応じて型変換を使う
- `var` は型を理解した上で使う
最初は簡単に見える問題でも、実際に自分でコードを書くと意外と迷うことがあります。その迷いこそが学習のチャンスです。1問ずつ丁寧に取り組みながら、型の感覚をしっかり身につけていくことが大切です。
