Java | 変数の初期化と代入の基本

Java Java
スポンサーリンク

Javaの変数の初期化と代入の基本を、初心者向けに

プログラミングを始めると「変数」「初期化」「代入」という言葉がよく出てきます。ここでは、かみ砕いた説明と動くサンプル、よくある失敗例まで一気に整理します。


変数ってなに?

  • イメージ: 変数は「値をしまっておく箱」。
  • 役割: 箱には「型」(整数、文字、少数など)が決まっていて、その型に合った値だけが入る。
  • 宣言のしかた: 「型 変数名;」で箱を用意する。
int age;        // 年齢を入れる整数の箱
String name;    // 名前を入れる文字列の箱
double price;   // 値段を入れる少数の箱
Java

代入ってなに?「=」の正体

  • ポイント: = は「右側の値を左側の変数へ入れる」記号。数学の「等しい」とは違う。
  • 使い方: 「変数名 = 値;」
int age;
age = 20;          // ageの箱に20を入れる
String name;
name = "Taro";     // nameの箱に「Taro」を入れる
Java

初期化ってなに?宣言と同時に値を入れる

  • 利点: 宣言した瞬間に値も入れると「空箱のまま使ってしまう」ミスを防げる。
  • 書き方: 「型 変数名 = 値;」
int age = 20;
String name = "Taro";
double price = 199.99;
Java

変数の値は上書きできる

  • 性質: 変数は中身を何度でも入れ直せる(最後に代入した値が有効)。
int score = 50;
score = 80;     // 80に更新
score = score + 5; // 85に更新(元の値を使って計算してから代入)
Java

未初期化のまま使うとエラーになる

  • 原因: ローカル変数(メソッドの中で宣言した変数)は、値が入っていないと使えない。
  • 対策: 必ず値を入れてから使う。
public class Main {
  public static void main(String[] args) {
    int num;               // まだ空
    // System.out.println(num); // エラー:値が未設定
    num = 10;              // 代入
    System.out.println(num); // 10 と表示
  }
}
Java

同じ値をまとめて代入(連鎖代入)

  • 使いどころ: 初期状態をそろえたいときに便利。
  • 注意: 代入は右から左へ評価される。
int width, height, depth;
width = height = depth = 0; // 3つとも0になる
Java

代入と計算を組み合わせる(複合代入演算子)

  • 楽に書く: 「足してから代入」などを短く書ける。
  • 代表例:
    • x += 3;x = x + 3; と同じ
    • x -= 2;x = x - 2; と同じ
    • x *= 5;x = x * 5; と同じ
int x = 10;
x += 3;   // 13
x *= 2;   // 26
x -= 6;   // 20
System.out.println(x); // 20
Java

よくある間違いと対策

  • 型が合わない代入:
    例:int age = "20"; は不可(文字列は String、数値は int)。
  • 未初期化の使用:
    例:宣言だけして println するとエラー。先に代入する。
  • イコールの誤解:
    例:a = b; は「bの値をaへコピー」であり、aとbがずっと連動するわけではない。
  • 整数同士の計算で小数が消える:
    例:int a = 1; int b = 2; double c = a / b; // 0.0 になる
    対策:double c = (double)a / b; // 0.5

例題で理解を固める

例題1:初期化して合計を計算

public class Main {
  public static void main(String[] args) {
    int apple = 3;      // りんご
    int orange = 2;     // みかん
    int total = apple + orange; // 合計を計算して代入
    System.out.println("合計: " + total); // 合計: 5
  }
}
Java
  • ポイント: 計算結果も「値」なので、そのまま代入できる。

例題2:値の更新(上書き)を体験

public class Main {
  public static void main(String[] args) {
    int score = 70;       // 初期スコア
    score += 10;          // ボーナス加算 → 80
    score = score - 5;    // ペナルティ減算 → 75
    System.out.println("最終スコア: " + score);
  }
}
Java
  • ポイント: 複合代入を使うと読みやすく、バグを減らせる。

例題3:連鎖代入で初期状態をそろえる

public class Main {
  public static void main(String[] args) {
    int w, h, d;
    w = h = d = 1; // 3次元の初期サイズを全部1に
    System.out.println(w + ", " + h + ", " + d); // 1, 1, 1
  }
}
Java
  • ポイント: 右から左へ値が渡っていく。読みやすさを優先して使いすぎない。

例題4:未初期化エラーを避ける

public class Main {
  public static void main(String[] args) {
    int count;
    // System.out.println(count); // ダメ
    count = 1;                   // 代入してから使う
    System.out.println(count);
  }
}
Java
  • ポイント: ローカル変数は初期化必須。困ったら宣言時に初期化するのが安全。

練習問題

  • 問題1: 変数price(整数)を宣言し、初期値を300に設定。priceに消費税10%を上乗せして、最終金額を表示してください。
    ヒント:
int price = 300; // ここに計算(整数同士だと小数が消えることに注意)
Java
  • 問題2: 変数name(文字列)を初期化して、あとから別の名前に上書き。最終的な名前を表示してください。
  • 問題3: 変数a, b, c(すべて整数)を宣言し、連鎖代入で全部0に。その後aだけ5に更新して、3つの値を表示してください。

Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました