System.out.println("Java学習中"); - 基礎からわかる技術ブログ

Javaを中心に学習中|初心者向けにプログラミングの基礎を解説しています

【Java Silver対策】条件分岐とは?RPGの勇者でわかりやすく解説🌱

🟢 はじめに

前回の記事では、メソッドの「引数」「戻り値」について、RPGの勇者への「お願い(インプット)」と、勇者からの「報告(アウトプット)」のキャッチボールに例えてお話しました。

💡 前回の記事はこちら👇

blog.kenichikamoi.com

さて、RPGの醍醐味といえば、「もしHPが0になったら……」「もし宝箱に罠が仕掛けられていたら……」といったハラハラドキドキの展開ですよね🤔

プログラムの世界で、状況に応じて「どっちの道に進むか」を決める仕組みを「条件分岐(じょうけんぶんき)」と呼びます。

ただ命令を聞くだけだった勇者に「自分で考えて判断する力」を授ける、というふうにイメージすると分かりやすいかと思います🪄


💻 実際に「生存確認メソッド」を作ってみよう!

さっそく勇者クラスに、いま自分が生きているか倒れているかをチェックする特技を追加してみましょう。

class Hero {
    String name;
    int hp;

    public Hero(String name, int hp) {
        this.name = name;
        this.hp = hp;
    }


    // ★特技:状態チェック(if文の魔法!)
    public void checkStatus() {
        if (this.hp <= 0) {
            // もしHPが0以下なら……こっちのルートに進む!
            System.out.println(this.name + " は倒れた! 💀");
            System.out.println("GAME OVER");
        } else {
            // そうでなければ(HPが1以上なら)……こっちのルートに進む!
            System.out.println(this.name + " はまだ戦える! ⚔️");
        }
    }
}

🔍 if文を組み立てる2つのパーツ

コードの中で出てきた ifelse は、冒険の「分かれ道」を作るための立て札のようなものです。

1️⃣ if (条件式) :「もし〜なら」

カッコの中には「YesかNoで答えられる質問」を書きます。

ここが「Yes」なら、そのすぐ下の処理が発動します!

  • hp <= 0 (HPは0以下か?)
  • hp == 100 (HPはぴったり100か?)
  • name.equals("アルス") (名前はアルスか?)

2️⃣ else :「そうでなければ」

もし上の質問の答えが「No」だった時に進む「予備のルート」です。

これがあるおかげで、どんな状況になっても勇者は道に迷わずに済みます🚶‍♂️


🟨 進化形:「もし〜なら、あるいは〜なら……」

「元気」か「死亡」かの2択だけじゃなく、「ピンチ!」という状態も作りたいですよね。

そんな時は、分かれ道を3つ以上に増やせる else if (あるいは〜なら)の出番です!

public void checkStatusDetailed() {
    if (this.hp <= 0) {
        // ① まずHPが0以下かチェック!
        System.out.println("死亡:教会へ行きましょう ⛪");
        
    } else if (this.hp < 20) {
        // ② ①じゃなくて、HPが20未満ならこっち!
        System.out.println("ピンチ:画面が赤く点滅しています! ⚠️");
        
    } else {
        // ③ どちらにも当てはまらない(HPが20以上)ならこっち!
        System.out.println("元気:どんどん進みましょう! ✨");
    }
}

⚠️ ここがポイント!

条件は「上から順番」にチェックされていき、最初に「YES!」となった道の処理だけが実行されます。

一度進む道が決まると、それより下の条件は無視されるのがJavaの世界のルールです。


⚖️ 冒険の必需品!よく使う「比較」の記号

条件式(質問)を作るときに使う記号(比較演算子)をまとめました。

算数と似ていますが、少しJava独特の形をしているものもあります。

記号 意味 使い方(RPGの例)
== 等しい hp == 100 (= が2つ並ぶのがポイント!)
!= 等しくない hp != 0 (HPが0じゃない、つまり生きている?)
> より大きい level > 10 (レベルが11以上なら?)
< より小さい hp < 20 (HPが19以下なら?)
>= 以上 level >= 10 (レベルが10以上なら?)
<= 以下 hp <= 0 (HPが0以下なら?)

📝 まとめ

  • if文 = 勇者が自分で状況を判断するための 「分かれ道」 🛣️
  • 条件式 = どっちに進むかを決める 「Yes/Noの質問」
  • else = どの条件にも当てはまらなかった時の 「その他ルート」 🛡️

これであなたの勇者は、自分のHPを見て「今は回復魔法を使うべきか?」「戦いを続けるか?」を自分で判断できるレベルに成長しました!

同じように「条件分岐のイメージが湧かない🤯」と悩んだ方の参考になれば幸いです 🙌