简体   繁体   中英

Why doesn't subtraction sign work on while loop in php?

<?php
$hp = 0;

while($hp < 50) {
    $flip = rand(0,2);
    if ($flip == 1) {
        echo "<p>X-Ray</p>";
        $hp += 15;
    } elseif ($flip == 2) {
        echo "<p>Special Move</p>";
        $hp += 10;

    } else {
        echo "<p>Punch</p>";
        $hp += 5;
    }
    echo "<p>Total so far: $hp</p>";
    echo "</br>";
}
?>

This is a PHP code. When I run it, it works fine. However, when I change it to this code below it doesn't.

<?php
$hp = 50;

while($hp > 1) {
    $flip = rand(0,2);
    if ($flip == 1) {
        echo "<p>X-Ray</p>";
        $hp -= 15;
    } elseif ($flip == 2) {
        echo "<p>Special Move</p>";
        $hp -= 10;

    } else {
        echo "<p>Punch</p>";
        $hp -= 5;
    }
    echo "<p>Total so far: $hp</p>";
    echo "</br>";
}
?>

Please help. tHE CHANGES I MADE ARE THE HIGHLIGHTED ONES.

You never created $hp properly in the second version:

50;

doesn't do anything. It just tells php "here, have a 50", and php goes "gee, thanks, ok, whatever" and moves onwards. Then you have

while($hp > 1) {

Since $hp is undefined, it's null, and the code parses/executes as:

while($hp > 1) {
while(null > 1) {
while(0 > 1) {
FALSE -> exit loop

You never created $hp properly in the second version:

50;

If you do change it to $hp = 50;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM