17
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ポケモン×Java】Lv8:『先にHP0になるのはどっちだ?』〜if文〜

Posted at

前回をまだ読んでない方はこちら

👉 【ポケモン×Java】Lv7:『勝つのはどっちだ?』〜while〜


🎮 バトル再開

HP0になったら、その時点でバトル終了!
このしくみは while文 で実現できたね!

……でも、思わぬバグが発生!

**両方のHPが0になって「引き分け」になっちゃうことがある**んだ。

今回は、この問題を「if文」で解決しよう!

💡 if文で勝敗を正しく判定しよう!

❗ なぜバグが起きたの?

while (pi.hp > 0 && hi.hp > 0) {
    pi.attack(hi);
    hi.attack(pi);
}

このままだと、ヒトカゲが0になってもピカチュウが攻撃を受けちゃう!

📒 トレーナーメモ
条件が成立している間は、中の処理がすべて実行される。
攻撃したあとに「相手のHPが0以下か」をちゃんと見て、止める工夫が必要!


▷ 修正版のコード

BattleStage.java
package pokemon;

class BattleStage {
    public static void main(String[] args) {
        Pikachu pi = new Pikachu();
        Hitokage hi = new Hitokage();

        while (pi.hp > 0 && hi.hp > 0) {
            pi.attack(hi);

            // ヒトカゲのHPを確認して、倒れたら終了!
            if (hi.hp <= 0) {
                // while文を終了する
                break; 

            // ヒトカゲのHPを確認して、倒れてなかったらヒトカゲの攻撃
            } else {
                hi.attack(pi);
            }
        }
    }
}

📒 トレーナーメモ

  • if(条件){処理}は、もし(条件)なら{処理}を実行意味!
  • if(hi.hp <= 0) {break;} の意味は、
    もし、(ヒトカゲのhpが0)なら{ループを止める!}
  • break には、for文やwhile文を終了する機能がある
  • これで「両者同時に倒れる」ケースを防げるよ!
  • else{処理}は、もし、それ以外なら{処理}を実行の意味

✍️ 練習

  • while文の中に、「HPを確認してbreakする処理」を追加しよう!

Hintコード:

while (pi.hp > 0 && hi.hp > 0) {
    pi.attack(hi);
    if (hi.hp <= 0) {
        break;
    } else {
        hi.attack(pi);
    }
}

次回:『新技!ピカチュウ、アイアンテール!』

ナイスバトルをありがとう!!
勝負を経験して、ポケモンたちが成長したようだ!

次回は別の技も使えるようになるぞ!!
次の投稿まで――

ピッピカチュウ!!


あとがき

ここまで読んでくれて、本当にありがとうございました。

「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。

次の投稿も、よろしくおねがいします。

💬 コメント・フィードバック歓迎!

「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!


✅ 実行例(一部)

ピカチュウ がバトルに登場!
ピカーーッ!!

ヒトカゲ がバトルに登場!
カゲェーッ!!

...省略

ピカチュウ の 10万ボルト!
ヒトカゲ に 20 のダメージ!
ヒトカゲ の HP は 0 になった!


🔍 今のプロジェクトの様子

image.png


17
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?