演算子
この章で得られるスキル:
- ✅ 計算や比較を使ったプログラムが書ける
- ✅ 複雑な条件式を組み立てられる
- ✅ 実務でよく使う演算子のパターンを理解できる
- ✅ エラーが起きやすいポイントを避けられる
Step 0: まず体験してみよう
説明の前に、まず 演算子がないと何が困るのか を体験しよう。
シナリオ:ECサイトの送料計算を作りたい
あなたはECサイトを作っている。以下のルールで送料を計算したい:
- 合計金額が3000円以上なら送料無料
- 3000円未満なら送料500円
実行してみよう(演算子なし):
問題点:
- 値の比較ができない(「3000円以上」という判定ができない)
- 計算ができない(合計金額が計算できない)
- 条件による処理の切り替えができない
では、演算子を使うとどうなるか?
解決できたこと:
- ✅ 値を比較できる(
>=) - ✅ 計算ができる(
+) - ✅ 条件による処理の切り替えができる
Step 1: 算術演算子を理解する
算術演算子 は、計算を行うための演算子 である。
基本の5つ
| 演算子 | 意味 | 例 | 結果 |
|---|---|---|---|
+ | 足し算 | 5 + 3 | 8 |
- | 引き算 | 5 - 3 | 2 |
* | 掛け算 | 5 * 3 | 15 |
/ | 割り算 | 6 / 3 | 2 |
% | 余り(剰余) | 10 % 3 | 1 |
やってみよう:
aとbの値を変えて実行してみよう
Step 2: 剰余演算子(%)の実用例
剰余演算子 % は、割り算の余り を求める。
実用例1:偶数・奇数の判定
やってみよう:
numberを変えて、偶数・奇数判定を試してみよう
実用例2:N回に1回の処理
やってみよう:
i % 3をi % 5に変えて、5回に1回にしてみよう
Step 3: 整数の割り算に注意する
重要:整数同士の割り算は、結果も整数になる(小数点以下は切り捨て)
やってみよう:
5 / 2と5.0 / 2の結果の違いを確認しよう
平均点や割合を計算するときは、必ずdoubleで計算しよう。 整数の割り算だと、小数点以下が切り捨てられてしまう。
Step 4: 複合代入演算子を理解する
複合代入演算子 は、計算と代入を同時に行う 便利な演算子である。
基本の5つ
| 演算子 | 意味 | 例 | 同じ意味 |
|---|---|---|---|
+= | 加算して代入 | x += 5 | x = x + 5 |
-= | 減算して代入 | x -= 5 | x = x - 5 |
*= | 乗算して代入 | x *= 5 | x = x * 5 |
/= | 除算して代入 | x /= 5 | x = x / 5 |
%= | 剰余して代入 | x %= 5 | x = x % 5 |
やってみよう:
- 初期スコアを変えて実行してみよう
複合代入演算子は、コードを 短く読みやすく する。 実務でよく使われるので、覚えておこう。
Step 5: 比較演算子を理解する
比較演算子 は、2つの値を比較して、true/falseを返す 演算子である。
基本の6つ
| 演算子 | 意味 | 例 | 結果 |
|---|---|---|---|
== | 等しい | 5 == 5 | true |
!= | 異なる | 5 != 3 | true |
< | より小さい | 3 < 5 | true |
> | より大きい | 5 > 3 | true |
<= | 以下 | 5 <= 5 | true |
>= | 以上 | 5 >= 3 | true |
やってみよう:
xとyの値を変えて、比較結果の変化を確認しよう
- 等しいかどうかは
==(イコール2つ) =は代入、==は比較
間違えやすいので注意!
Step 6: 論理演算子を理解する
論理演算子 は、複数の条件を組み合わせる ための演算子である。
基本の3つ
| 演算子 | 意味 | 例 | 結果 |
|---|---|---|---|
&& | AND(かつ) | true && true | true |
|| | OR(または) | true || false | true |
! | NOT(否定) | !true | false |
AND演算子(&&)
両方の条件が真のとき、結果が真になる
やってみよう:
hasLicenseをfalseに変えてみよう
OR演算子(||)
どちらか一方でも真のとき、結果が真になる
やってみよう:
dayOfWeekを3(水曜)に変えてみよう
NOT演算子(!)
条件を反転させる(真→偽、偽→真)
やってみよう:
isRainingをtrueに変えてみよう
Step 7: インクリメント・デクリメント
インクリメント(++)
変数の値を1増やす
int count = 5;
count++; // count = count + 1 と同じ
// countは6になる
デクリメント(--)
変数の値を1減らす
int count = 5;
count--; // count = count - 1 と同じ
// countは4になる
やってみよう:
- ライフが0になる様子を確認してみよう
Step 8: 実践課題
これまで学んだことを組み合わせて、実践的なプログラムを作ってみよう。
課題1:ゲームのHPとMP計算
仕様:
- HPが攻撃でダメージを受ける
- MPが魔法で消費される
- HPが0以下なら「戦闘不能」と表示
やってみよう:
- ダメージ量を変えてみよう
- ポーション(HP回復)の処理を追加してみよう(
hp += 30)
課題2:割引計算プログラム
仕様:
- 会員なら10%オフ
- 5000円以上なら送料無料
- 最終的な支払い金額を計算
やってみよう:
isMemberをfalseにして、非会員の場合を試してみようbasePriceを3000にして、送料が発生する場合を試してみよう
課題3:成績判定プログラム
仕様:
- 80点以上:A
- 60点以上:B
- 40点以上:C
- 40点未満:D
- 平均点も計算
やってみよう:
- 点数を変えて、成績判定を試してみよう
- 4科目以上に拡張してみよう
まとめ
この章では、Javaの 演算子 について学んだ。
🎯 達成できたこと
- ✅ 計算や比較を使ったプログラムが書けるようになった
- ✅ 複雑な条件式を組み立てられるようになった
- ✅ 実務でよく使う演算子のパターンを理解できた
- ✅ エラーが起きやすいポイントを避けられるようになった
📚 学んだ内容
| 演算子 | 種類 | 例 |
|---|---|---|
+, -, *, /, % | 算術演算子 | a + b |
+=, -=, *=, /=, %= | 複合代入演算子 | x += 5 |
==, !=, <, >, <=, >= | 比較演算子 | a > b |
&&, ` | , !` | |
++, -- | インクリメント・デクリメント | count++ |
🚀 次のステップ
次の章では、条件分岐(if文、switch文)について学ぶ。 演算子で得た真偽値を使って、プログラムの処理を分岐させる方法を学ぶ。
💡 よくある質問
Q1: =と==の違いは?
A: =は代入、==は比較。
int x = 10; // ✅ 代入(xに10を代入)
if (x == 10) { // ✅ 比較(xが10と等しいか)
よくあるミス:
if (x = 10) { // ❌ エラー!代入はできない
Q2: 整数の割り算で小数が欲しいときは?
A: どちらか一方をdoubleにする。
int result1 = 7 / 2; // 3(整数の割り算)
double result2 = 7.0 / 2; // 3.5(小数の割り算)
double result3 = 7 / 2.0; // 3.5(こちらもOK)
Q3: &&と||の違いは?
A: &&は「両方true」、||は「どちらか一方がtrue」
// &&(AND):両方trueのときだけtrue
if (age >= 18 && hasLicense) { // 18歳以上 かつ 免許あり
// ||(OR):どちらか一方がtrueならtrue
if (day == 0 || day == 6) { // 日曜 または 土曜
Q4: ++iとi++の違いは?
A: 単独で使う分には同じ。違いが出るのは、他の式と組み合わせたとき。
int i = 5;
i++; // iを1増やす(6になる)
++i; // iを1増やす(6になる) → 単独なら同じ
違いが出る例:
int x = 5;
int y = x++; // yには5が入り、その後xが6になる
int a = 5;
int b = ++a; // aが6になり、その後bに6が入る
実務では、単独で使うことがほとんどなので、どちらでもOK。
Q5: +=などの複合代入演算子はいつ使う?
A: 頻繁に使う。実務でよく出てくるパターン。
// スコア加算
score += 10; // score = score + 10 より短い
// HP減少
hp -= damage; // hp = hp - damage より読みやすい
// カウントアップ
count++; // count += 1 や count = count + 1 と同じ
短くて読みやすいので、積極的に使おう!