Java 変数・データ型・制御構文 — 本当の出発点
Java 変数・データ型・制御構文 — 本当の出発点
🎯 このレッスンを読み終えたら
このレッスンをすべて読み終えると、次の3つを自信を持ってできるようになります。
- ▸✅ 8つの基本データ型のうち 実務でよく使う4つ (int/double/boolean/char) の違い
- ▸✅ for-each・for・while・switch を いつ・どれ を使うか
- ▸✅ 整数除算の落とし穴 + 型キャストと
(int) doubleの truncate 動作の説明
学習目標を チェックリスト として使い、すべて答えられるようになったらレッスンを閉じてください。
8つの基本データ型 — 全部暗記しなくて大丈夫
Java には 2種類の分類 があります
- ▸基本型 (primitive) — 実際の 値を保持する 型。8種類。
- ▸参照型 (reference) — オブジェクトの アドレスを保持する 型。
String、配列、クラスなど。
基本型は4つだけ覚えれば 大丈夫です: int、double、boolean、char。
基本型8種類 — 1枚の表で
結論: 最初は int・double・boolean・char だけ知っていれば十分です。
宣言と代入
= は「等しい」ではなく「代入する」 という意味。右辺の値を左辺の変数に 代入 します。
出力 — println vs printf
%d = 整数、%f = 小数、%s = 文字列、%n = 改行。オプション %.1f は 小数点1桁。
型キャスト — int と double 間の変換
暗黙の変換 (自動)
小さい型 → 大きい型 は自動的に変換されます。
明示的な変換 (強制)
大きい型 → 小さい型 は 明示的なキャストが必要。データ損失の可能性を示すためです。
括弧の中に 変換先の型 を指定します。四捨五入ではなく切り捨て (truncate) — 3.99 も 3 になります。
よくある落とし穴 — 整数除算
最もよくあるバグ。整数同士で割ると 小数点以下が切り捨てられた 結果になります。
if · switch · ループ — 1ページでまとめ
if / else
条件式は boolean でなければなりません。C言語のように if (x) で 0/1 を使うことはできません。
switch — 値の比較が多い場合
Java 14以降では アロー構文 がすっきりしています。
旧構文 (Java 13以前) は break を忘れると次の case に処理が流れてしまう 落とし穴がありました — 新しいコードは アロー構文 を使いましょう。
for — 繰り返し回数が決まっている場合
順序は 初期化 → 条件チェック → 本体 → インクリメント → 条件チェック ...。これを ライフサイクル と呼びます。
while / do-while — 条件だけある場合
do-while は 必ず1回実行 してから条件を確認します。実務ではほとんど使いません。
例題 — 1 〜 100 の合計
配列 — 同じ型の複数の値をひとまとめに
配列の宣言と初期化
int[] が「int の配列」型です。C スタイルの int arr[] も使えますが 推奨されません。
アクセス — インデックスは 0 から
インデックスが範囲外になると ArrayIndexOutOfBoundsException — 最もよく遭遇するランタイムエラー です。
長さ — .length
.length は 括弧なしのフィールド です (length() ではありません)。String の length() と混同しないように。
for-each — より簡潔な繰り返し
インデックスが不要なとき は圧倒的に読みやすい。ただし インデックスを取得できないため、要素を変更する場合は通常の for ループが適しています。
2次元配列
ゲームボードや行列でよく使います。実務では ほとんど ArrayList を使いますが、アルゴリズム問題では配列の方が高速です。
次の学習へ
変数・制御構文・配列 — ここまでが すべての Java コードの基本材料 です。次の章 OOP では「なぜクラスにまとめる必要があるのか」を学びます。
☕ 実際に実行してみよう — 変数・データ型・演算・制御構文
🤖 AI にこう依頼してみよう
このレッスンの概念を知っていれば、AI に 具体的な 指示を出せます。漠然とした「直して」ではなく 語彙を持ったリクエスト — それがトークン節約の出発点です。
- ▸「この Java コードの int と long、float と double の使い方を適切に修正して」
- ▸「この for ループを拡張 for-each に書き換えて」
- ▸「この if-else チェーンを switch 式 (Java 14+) にリファクタリングして」
なぜトークンが減るのか
概念を知らないと、AI の回答を受け取っても 「それって何ですか?」 と再度聞かなければなりません。その「再質問」がトークンを消費します。概念を一度身につければ 会話が一発で 終わります。