変数の基礎・練習問題(全15問)
ここでは「変数の宣言・初期化・代入・型の扱い」をしっかり身につけるための
練習問題 全15問セット(解答+解説付き) を紹介します。
問1:整数を使う基本
整数型変数 a に 7 を入れて、3 倍した結果を表示してください。
解答:
public class Q1 {
public static void main(String[] args) {
int a = 7;
a = a * 3;
System.out.println(a); // 21
}
}
Java解説:int は整数を扱う型。
「変数に値を入れて、計算結果を再代入」する基本の流れを確認。
問2:小数を使う
半径 radius = 2.5 の円の面積を求めて表示してください。
円の面積=πr²(π = 3.14 とする)
解答:
public class Q2 {
public static void main(String[] args) {
double radius = 2.5;
double area = 3.14 * radius * radius;
System.out.println(area); // 19.625
}
}
Java解説:double は小数を扱う型。
整数(int)で計算すると小数点以下が切り捨てられるため注意。
問3:文字の操作
文字 ch に ‘Z’ を入れて、1つ前の文字(’Y’)を求めて表示してください。
解答:
public class Q3 {
public static void main(String[] args) {
char ch = 'Z';
char prev = (char)(ch - 1);
System.out.println(prev); // Y
}
}
Java解説:char は実際には整数として扱われており、1を引くと前の文字コードの文字になる。
問4:文字列を結合する
firstName = "Taro", lastName = "Yamada" を結合して
「フルネーム」を表示してください。
解答:
public class Q4 {
public static void main(String[] args) {
String firstName = "Taro";
String lastName = "Yamada";
String fullName = firstName + " " + lastName;
System.out.println(fullName); // Taro Yamada
}
}
Java解説:+ は文字列同士をつなぐ演算子。数値と違って加算ではなく「連結」。
問5:未初期化エラー
次のプログラムはエラーになります。理由を答えなさい。
public class Q5 {
public static void main(String[] args) {
int n;
System.out.println(n);
}
}
Java解答・解説:
ローカル変数 n は初期化されていないため、使うとエラー。
Javaではローカル変数に自動初期値は入らない。
問6:代入の順番
次のコードを完成させて、x = 5, y = 10 のときの合計を表示してください。
解答:
public class Q6 {
public static void main(String[] args) {
int x = 5;
int y = 10;
int total = x + y;
System.out.println(total); // 15
}
}
Java解説:
変数を先に宣言してから使うこと。x + y の結果を別の変数に代入できる。
問7:型の不一致
次のコードはエラーになります。なぜでしょう?
public class Q7 {
public static void main(String[] args) {
int num = 10;
num = "10";
}
}
Java解答・解説:
右辺 "10" は文字列、左辺 num は整数型。
型が一致しないため代入できない(型の不一致エラー)。
問8:boolean(真偽値)を使う
int score = 85; のとき、score が 80 以上なら true、そうでなければ false を
変数 isPassed に代入して表示してください。
解答:
public class Q8 {
public static void main(String[] args) {
int score = 85;
boolean isPassed = score >= 80;
System.out.println(isPassed); // true
}
}
Java解説:
比較演算の結果は boolean 型。>= は「以上」を意味する。
問9:まとめて宣言
同じ型の変数をまとめて宣言して、合計を求めてください。a = 2, b = 3, c = 4
解答:
public class Q9 {
public static void main(String[] args) {
int a = 2, b = 3, c = 4;
int sum = a + b + c;
System.out.println(sum); // 9
}
}
Java解説:
同じ型の変数は1行で宣言できる。
複数行に分けても結果は同じ。
問10:キャストを体験
次のプログラムを完成させて、double 型から int 型に変換し、小数点を切り捨てて表示してください。
解答:
public class Q10 {
public static void main(String[] args) {
double pi = 3.14159;
int i = (int) pi;
System.out.println(i); // 3
}
}
Java解説:(int) をつけると強制的に整数に変換(キャスト)。
小数点以下は切り捨てられる。
問11:変数の更新
int count = 0; として、3 回加算した結果を表示してください。
解答:
public class Q11 {
public static void main(String[] args) {
int count = 0;
count = count + 1;
count = count + 1;
count = count + 1;
System.out.println(count); // 3
}
}
Java解説:
代入文は「右辺を計算 → 左辺に代入」の順。
つまり count = count + 1; は「count を 1 増やす」。
問12:文字列と数値の違い
次の出力結果を予想してみよう:
public class Q12 {
public static void main(String[] args) {
int a = 10;
String b = "10";
System.out.println(a + a);
System.out.println(b + b);
}
}
Java解答・解説:
出力:
20
1010
数値同士は足し算、文字列同士は連結になる。
型によって演算子の意味が変わる!
問13:var を使った宣言
Java 10 以降では var が使えます。次のプログラムを完成させて型推論を確認してください。
解答:
public class Q13 {
public static void main(String[] args) {
var x = 5; // int 型になる
var y = "hello"; // String 型になる
System.out.println(x + 1);
System.out.println(y + " world");
}
}
Java解説:var は「右辺の型から自動的に型を決める」。
ただし右辺がない宣言(例:var a;)はできない。
問14:スコープの理解
次のプログラムの出力を予想してみよう:
public class Q14 {
public static void main(String[] args) {
int x = 10;
if (x > 5) {
int y = 20;
System.out.println(x + y);
}
// System.out.println(y); // ← エラー!なぜ?
}
}
Java解答・解説:
ブロック { } の中で宣言した変数はその中でしか使えない。y は if 文の中でしか有効ではないため、外で使うとエラー。
問15:入力値を使って変数に代入(応用)
次のコードを完成させて、ユーザーが入力した年齢を1年後の年齢として表示してください。
解答:
import java.util.Scanner;
public class Q15 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("年齢を入力してください:");
int age = sc.nextInt();
int next = age + 1;
System.out.println("来年は " + next + " 歳になります。");
sc.close();
}
}
Java解説:Scanner は標準入力を扱うクラス。
変数に値を代入する流れが「入力 → 計算 → 出力」でつながる実用例。
まとめ:変数の学びポイント
| 覚えること | 内容 |
|---|---|
| 宣言の形 | 型 変数名; |
| 初期化 | 型 変数名 = 値; |
| 代入 | 変数名 = 新しい値; |
| 型の違い | int / double / char / String / boolean |
| 注意点 | 未初期化使用禁止・型不一致エラーに注意 |
| コツ | 「宣言 → 代入 → 使用」の順番を守る |
次のステップとしては
👉 「変数のスコープ(有効範囲)」
👉 「定数(final)」
👉 「演算と型変換」
を練習していくと、基礎がしっかり固まります。
