では「変数の宣言」をプログラミング初心者向けに、順を追って・例題つきで丁寧に説明します。Java を例にしますが、考え方は他の言語にも応用できます。
1. 変数って何?
変数は「名前を付けた入れ物」です。プログラムの中で値(数字や文字列など)を一時的に保存しておく場所です。
たとえば int score = 80; は「score という入れ物に 80 を入れたよ」という意味。
2. 宣言(データ型+変数名)と初期化(値をセットする)
Javaではまず宣言をして「この変数はどんな型か」をコンピュータに教えます。
基本の書き方:
データ型 変数名;
Java例:
int age; // age という整数型の変数を宣言
char grade; // grade という文字型の変数を宣言
Java初期化(宣言と同時に値を入れる):
int age = 20;
char grade = 'A';
Javaポイント:
- 「宣言」だけでは値は入っていません(ローカル変数は初期値が自動で入らないので、使う前に必ず初期化が必要です)。
- 「宣言 → 代入(= を使う)」の順番が必要です。
3. よく使うデータ型(簡単に)
int: 整数(例:10, -3)double: 小数(例:3.14)char: 1文字(例:’A’, ‘あ’) — シングルクォートString: 文字列(例:”Hello”) — ダブルクォート(参照型)boolean: 真偽値(true/false)
例:
int x = 5;
double pi = 3.14;
char c = 'J';
String name = "Halu";
boolean isOk = true;
Java4. 同じ型の変数をまとめて宣言する方法
int a, b, c; // 宣言だけ
int x = 1, y = 2; // 宣言と同時に初期化
Java注意:可読性のため、意味が違う変数は別行で宣言した方が親切です。
5. 型が違う値は基本的に代入できない(型の互換性)
int i;
i = 3.14; // エラー(小数は int に入らない)
Javaただし型変換(キャスト)を使えば強制的に変えられますが、情報が切り捨てられる可能性があります:
double d = 3.14;
int i = (int) d; // i は 3 になる(小数点以下切り捨て)
Java6. ローカル変数とフィールド(クラス変数)の初期値の違い
- メソッド内部で宣言した ローカル変数 は初期化されていないと使えません(コンパイルエラーになる)。
- クラスのフィールド(インスタンス変数)は自動でデフォルト値(int → 0, boolean → false, 参照型 → null)が入ります。
例(ローカル変数を使うときの注意):
public static void main(String[] args) {
int n;
// System.out.println(n); // コンパイルエラー:n は初期化されていない
n = 10;
System.out.println(n); // OK
}
Java7. 変数名のルール(基本)
- 英字、数字、アンダースコア
_を使える(ただし最初の文字は数字不可) - Javaの予約語(
intやclassなど)は使えない - 慣例:単語の区切りはキャメルケース(例:
studentName)を使うと読みやすい
8. var(Java 10 以降の型推論)の簡単な紹介
var a = 10; // コンパイラが a を int と判断
var s = "hello"; // s は String と判断
Java注意:var を使っても型が決まるのは宣言時です。可読性のため使いどころを考えましょう(初心者はまず明示的に型を書くのがおすすめ)。
9. 例題(小さめ・実行可能な Java プログラム)
- 年齢を扱う簡単なプログラム:
public class Example1 {
public static void main(String[] args) {
int age = 25; // 宣言と初期化
System.out.println("年齢は " + age + " 歳です");
age = age + 1; // 代入(更新)
System.out.println("来年は " + age + " 歳になります");
}
}
Java- 体積の計算(double を使う):
public class Volume {
public static void main(String[] args) {
double width = 2.5;
double height = 3.0;
double depth = 4.0;
double volume = width * height * depth;
System.out.println("体積 = " + volume);
}
}
Java- 型のエラー例(やってはいけない):
public class ErrorExample {
public static void main(String[] args) {
int x = 10;
// x = "hello"; // コンパイルエラー:型が違うので代入できない
}
}
Java10. 練習問題(初心者向け・解答付き)
問題は自分でタイプして実行してみてください。コンパイル・実行で学ぶのが上達の近道!
問1. int 型変数 a に 7 を入れて、a を 3 倍して表示するプログラムを書いてください。
解答例:
public class Q1 {
public static void main(String[] args) {
int a = 7;
a = a * 3;
System.out.println(a); // 出力: 21
}
}
Java問2. double 型で 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問3. char 型変数 ch に ‘Z’ を入れて Z の前の文字(’Y’)を求めて表示してください。
解答例:
public class Q3 {
public static void main(String[] args) {
char ch = 'Z';
char prev = (char)(ch - 1); // char を数値操作して戻している
System.out.println(prev); // 出力: Y
}
}
Java問4. String 型 firstName と lastName を連結してフルネームを表示してください。
解答例:
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 は初期化されていないため、使用できない(コンパイルエラー)。
11. よくある間違いと対処法
- 宣言していない変数に代入してしまう → 「変数を宣言してから代入」する。
- 型の違う値を代入する → 型を合わせるか、キャストが必要。
- ローカル変数を初期化し忘れる → 値をセットしてから使う。
- 変数名に日本語やスペース、予約語を使う → 英字でわかりやすい名前にする。
12. 次に学ぶと良いこと(おすすめ)
- 変数の「スコープ(有効範囲)」:どこで使えるか理解する
- 配列とリスト:同じ型の複数のデータを扱う方法
- 定数(
final):値を変えたくないときに使う - 型変換とキャストのルール
