変数と型
この章で得られるスキル:
- ✅ データを保存して再利用できる
- ✅ 基本データ型(int, double, boolean, String)を使い分けられる
- ✅ わかりやすい変数名が付けられる
- ✅ 実務でよく使う変数のパターンを理解できる
Step 0: まず体験してみよう
説明の前に、まず 変数がないと何が困るのか を体験しよう。
シナリオ:SNSのプロフィールページを作りたい
あなたはSNSアプリを作っている。ユーザーのプロフィールページに、名前、年齢、フォロワー数、自己紹介を表示したい。
実行してみよう(変数なし):
問題点:
- 同じ情報(名前、年齢など)を何度も書く必要がある
- 情報を変更したくなったら、全箇所を探して修正する必要がある
- 誤字脱字が起きやすい
- コードが長く読みにくい
では、変数を使うとどうなるか?
解決できたこと:
- ✅ 情報を1箇所で管理できる
- ✅ 変更が1箇所で済む
- ✅ 誤字脱字が減る
- ✅ コードが読みやすくなる
Step 1: 変数の基本を理解する
変数 は、データを一時的に保存するための「箱」 である。
変数の3つの要素
int age = 25;
この1行には3つの要素がある:
| 要素 | 意味 | 例 |
|---|---|---|
| 型(Type) | 箱の種類(何を入れるか) | int(整数) |
| 変数名(Name) | 箱の名前(ラベル) | age |
| 値(Value) | 箱に入れるデータ | 25 |
変数の使い方
やってみよう:
scoreの初期値を変えてみよう- 新しい変数を追加してみよう
Step 2: 代入の仕組みを理解する
代入 は、右辺の値を左辺の変数に入れること である。
イコール記号の意味
プログラミングの=は、数学の「等しい」ではない!
int x = 10; // 「xは10に等しい」ではなく「10をxに代入する」
代入の流れ
1. 右辺(10)を計算する
2. 計算結果を左辺の変数(x)に代入する
やってみよう:
x = x + 5をx = x * 2に変えてみようx = x - 3を試してみよう
x = x + 1は「xの値を1増やす」という意味。
実務でよく使うパターンなので覚えておこう。
Step 3: 基本データ型を理解する
Javaには、以下の 基本データ型 がある:
よく使う4つの型
| 型 | 分類 | 扱えるデータ | 例 |
|---|---|---|---|
| int | プリミティブ型 | 整数 | 10, -5, 0 |
| double | プリミティブ型 | 小数 | 3.14, -0.5 |
| boolean | プリミティブ型 | 真偽値 | true, false |
| String | 参照型 | 文字列 | "Hello", "太郎" |
- 小文字で始まる(int, double, boolean):プリミティブ型
- 大文字で始まる(String):参照型(クラス)
この違いは第10章で学ぶ。今は「Stringだけ大文字」と覚えておこう。
実際に使ってみよう
やってみよう:
- 自分の情報で変数を作ってみよう
- 各型でどんな値が使えるか試してみよう
Step 4: 変数の命名規則を理解する
基本ルール
-
英字、数字、アンダースコア(_)が使える
- ✅
age,price1,user_name - ❌
価格(日本語は不可)
- ✅
-
数字から始められない
- ✅
price1 - ❌
1price
- ✅
-
予約語は使えない
- ❌
int,class,public
- ❌
Javaの命名規則
変数名:キャメルケース(camelCase)
int totalPrice = 1000; // ✅ 良い例
String firstName = "太郎"; // ✅ 良い例
boolean isLoggedIn = true; // ✅ 良い例
int TotalPrice = 1000; // ❌ 変数は小文字始まり
String first_name = "太郎"; // ❌ Javaではスネークケースは使わない
int a = 1000; // ❌ 意味が分からない
わかりやすい名前をつける
やってみよう:
- 悪い例のコードを良い例に書き直してみよう
変数名は、他の人(または未来の自分)が読んで理解できるように つける。
3ヶ月後に自分のコードを見返したとき、aでは何か分からない。
totalPriceなら一目で理解できる。
Step 5: 型変換を理解する
暗黙の型変換(自動)
小さい型 → 大きい型 は自動的に変換される。
int num = 10;
double decimal = num; // int → double(自動)
System.out.println(decimal); // 10.0
明示的な型変換(キャスト)
大きい型 → 小さい型 は明示的に変換する必要がある。
double decimal = 3.14;
int num = (int) decimal; // double → int(キャスト)
System.out.println(num); // 3(小数点以下が切り捨て)
やってみよう:
9.1,9.5,9.9をintに変換してみよう- すべて切り捨てになることを確認しよう
(int)は 切り捨て であって、四捨五入ではない!
9.99をintに変換すると9になる(10にはならない)。
Step 6: スコープを理解する
スコープ とは、変数が使える範囲 のことである。
基本ルール
ブロック({})の中で宣言した変数は、そのブロック内でのみ使える。
やってみよう:
- コメントアウトされている行のコメントを外してエラーを確認してみよう
変数は 宣言されたブロック内でのみ有効。
ブロックが終わる}で、その変数は消える。
Step 7: 定数を理解する
定数 は、一度値を設定したら変更できない変数 である。
定数の宣言
final int MAX_SCORE = 100; // 定数(変更不可)
MAX_SCORE = 200; // エラー!定数は変更できない
定数の命名規則
全て大文字 + アンダースコア区切り
final int MAX_STUDENTS = 30;
final double PI = 3.14159;
final String COMPANY_NAME = "ABC Company";
なぜ定数が必要か
やってみよう:
TAX_RATEを8に変えて実行してみよう- 1箇所変えるだけで全体が変わることを確認しよう
Step 8: 実践課題
これまで学んだことを組み合わせて、実践的なプログラムを作ってみよう。
課題1:ゲームキャラクターのステータス表示
仕様:
- キャラクター名、レベル、HP、MP、攻撃力を変数で管理
- ステータスを表示
やってみよう:
- 自分の好きなキャラクター名でステータスを作ってみよう
- レベルアップでステータスが上がるプログラムを書いてみよう
課題2:商品価格計算プログラム
仕様:
- 商品の税抜き価格と消費税率を変数で管理
- 税込み価格を計算して表示
やってみよう:
- 別の商品(例:スマホ、タブレット)で計算してみよう
- 消費税率を8%に変えてみよう
課題3:ユーザー情報管理
仕様:
- SNSユーザーの情報を変数で管理
- プロフィールカードを表示
やってみよう:
- 自分のSNS情報でプロフィールカードを作ってみよう
isVerifiedをtrueに変えて、認証バッジが表示されることを確認しよう
まとめ
この章では、Javaの 変数と型 について学んだ。
🎯 達成できたこと
- ✅ データを保存して再利用できるようになった
- ✅ 基本データ型(int, double, boolean, String)を使い分けられるようになった
- ✅ わかりやすい変数名が付けられるようになった
- ✅ 実務でよく使う変数のパターンを理解できた
📚 学んだ内容
| 概念 | 説明 | 例 |
|---|---|---|
| 変数 | データを一時的に保存する「箱」 | int age = 25; |
| 代入 | 右辺の値を左辺の変数に入れる | x = 10; |
| int | 整数を扱う型 | 10, -5, 0 |
| double | 小数を扱う型 | 3.14, -0.5 |
| boolean | 真偽値を扱う型 | true, false |
| String | 文字列を扱う型 | "Hello", "太郎" |
| 型変換 | 型を変換すること | (int) 3.14 → 3 |
| スコープ | 変数が使える範囲 | ブロック内のみ有効 |
| 定数 | 変更できない変数 | final int MAX = 100; |
🚀 次のステップ
次の章では、演算子 について学ぶ。 変数を使った計算や比較ができるようになる。
💡 よくある質問
Q1: intとdoubleはどう使い分ければいい?
A: 小数が必要かどうかで判断する。
- ✅ int:人数、年齢、レベルなど(小数がない)
- ✅ double:価格、身長、体重など(小数がある)
Q2: 変数名に日本語は使えないの?
A: 技術的には使えるが、使わないのが慣習。
int 年齢 = 25; // 動くが、使わない
int age = 25; // ✅ こちらが良い
理由:
- 国際的なプロジェクトで読めない
- IDEやツールで問題が起きる可能性
- 英語で書くのがプログラミング界の共通言語
Q3: 変数名が長すぎるのは良くない?
A: 分かりやすさ > 短さ を優先する。
int n = 100; // ❌ 短いが意味不明
int numberOfStudents = 100; // ✅ 長いが分かりやすい
int num = 100; // △ やや曖昧
ただし、極端に長いのも避ける:
int numberOfStudentsInClassARoomOnTheSecondFloor = 30; // ❌ 長すぎ
Q4: finalは必ず使わないといけない?
A: 必須ではないが、変わらない値にはfinalを使うべき。
int taxRate = 10; // ❌ 変更される可能性がある
final int TAX_RATE = 10; // ✅ 変更されないことが保証される
メリット:
- バグが減る(意図しない変更を防げる)
- コードが読みやすい(「この値は変わらない」と分かる)
Q5: Stringだけ大文字で始まるのはなぜ?
A: Stringは クラス(参照型) だから。
- プリミティブ型(int, double, boolean):小文字
- 参照型(クラス)(String):大文字
詳しくは第10章(オブジェクト指向)で学ぶ。 今は「Stringだけ特別」と覚えておこう。