Как запросить результат rand в цикле php? - PullRequest
0 голосов
/ 01 мая 2018

Я начинаю изучать PHP. Здесь я пытаюсь создать цикл, который проверяет, является ли случайно сгенерированное число 50. Если число 50, я хочу напечатать «это 50!», Если нет, я хочу повторить результат, а затем повторить случайную генерацию.

Вот мой код:

    <?php
        $number = 0; // sets the number to 0
        while ($number != 50) {  // I want this loop to repeat when the result isn't 50
            echo $number; // print the result
            $number = rand(0,100); // reshuffle
            if ($number == 50) { // result for if 50 is the result
                echo "it's 50!";
            }
            else { // result otherwise
                $number = 0;
            }
        }
    ?>

Я чувствую, что это не работает, потому что я не переопределяю число $ на основе результата функции rand, это правильно? Если да, то как мне переопределить значение переменной $ number из цикла?

1 Ответ

0 голосов
/ 01 мая 2018

Основная проблема с кодом, который вы отправили, заключается в том, что, если вы выбрали случайным образом не 50, вы присваиваете ему 0. Таким образом, ваш вывод будет потоком 0s.

Вы можете немного изменить свой код и удалить свой блок else:

<?php
$number = null;
while ($number != 50) {
    $number = rand(0, 100);
    echo $number . "\n";
    if ($number == 50)
        echo "It's 50!";
}

Или просто зацикливайтесь, пока не наберете номер, затем вырвитесь.

<?php
while (true) {
    $number = rand(0, 100);
    echo "$number\n";
    if ($number == 50) {
        echo "it's 50!\n";
        break;
    }
}

Или даже проще:

while (($number = rand(0, 100)) != 50)
    echo "$number\n";

echo "It's 50!";
...