はじめに
「HPが0より大きくて、状態が“元気”なら攻撃できる!」
こんなふうに、複数の条件を同時に判断したいときってあるよね?
今回は、そんな場面で大活躍する「論理演算子(&&
、||
、!
)」を紹介するよ!
Javaの「条件分岐」をさらにレベルアップさせよう!
🧠 論理演算子とは?
比較演算子と組み合わせて、複数の条件をつなげたり、逆転させたりできる演算子のこと!
演算子 | 意味 | 例 |
---|---|---|
&& |
両方とも 〇 なら true | hp > 0 && status.equals("元気") |
|| |
どちらかが 〇 なら true | hp > 0 || hasReviveItem == true |
! |
true/false を反転させる | !status.equals("正常") |
🎮 ポケモン風!実践例
✅ 条件① AND:両方満たすときだけOK
if (hp > 0 && status.equals("元気")) {
System.out.println("戦闘続行!");
} else {
System.out.println("攻撃できない...");
}
✅ 条件② OR:どちらかOKなら実行!
if (status.equals("まひ") || status.equals("どく")) {
System.out.println("状態異常が発生中!");
}
✅ 条件③ NOT:正常じゃないとき
if (!status.equals("正常")) {
System.out.println("なにか異常がある...!");
}
💡 注意点と補足
🔍 ちょっと高度な仲間たち:&
と |
Javaには &
(論理AND)や |
(論理OR)という演算子もあるよ!
これらは &&
, ||
に似てるけど、両方の条件を必ず評価するという違いがあるんだ。
public class Sample {
public static void main(String[] arg){
boolean a = false;
System.out.println("--- && の場合 ---");
if (a && methodThatReturnsFalse()) {
System.out.println("両方 true でした");
}
System.out.println("--- & の場合 ---");
if (a & methodThatReturnsFalse()) {
System.out.println("両方 true でした");
}
}
static boolean methodThatReturnsFalse() {
System.out.println("methodThatReturnsFalse() が呼ばれたよ!");
return false;
}
--- && の場合 ---
// 左側のみで判定しているため、呼ばれなかった。
--- & の場合 ---
// 両方で判定しているため、右側も呼ばれた。
methodThatReturnsFalse() が呼ばれたよ!
-
&&
や||
は左から順に評価されるよ(ショートサーキット)
しかし、a && b の状況で、a=falseの場合、bが判断されないんだ。 -
通常の条件分岐では
&&
や||
を使うのが安全で効率的!
&
や|
は「副作用のある処理も必ず実行したい」ような特殊な場面で使われるよ。 -
複雑な条件ではカッコ () でグループ化すると安全!
if ( (hp > 0 && status.equals("元気") ) || hasReviveItem) {
System.out.println("次のターンに期待できる!");
}
🪄 次回予告:三項演算子
次回は 条件 ? 値1 : 値2
という、if文を1行にギュッとできちゃう
便利な演算子「三項演算子」を紹介するよ!
条件によって結果を切り替えたいときに、とっても便利だからお楽しみに〜!
次の投稿まで~~
ピッピカチュウ!!
あとがき
ここまで読んでくれて、本当にありがとうございました。
「プログラミングって難しい...」って思ってた人も、
「ちょっと楽しいかも...!」って思ってもらえたらうれしいな。
次の投稿も、よろしくおねがいします。
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!