Я хочу назначить случайное значение между 48 и 122 $num
за исключением значения 79.
Таким образом, чтобы решить эту проблему, я попытался использовать цикл «время и время» для решения проблемы. Я протестировал его, но он не работает, как ожидалось, и заканчивается бесконечным циклом.
while($num != 79){
$num = rand(48, 122);
};
или же:
do {
$num = rand(48, 122);
} while ($num != 79);
Так почему же это не работает так, как я хочу? Может кто-нибудь сказать мне, где моя ошибка?
$ num должно быть числом от 48 до 122, но НЕ 79.
объявлять $num
со значением 79, чтобы убедиться, что цикл начинается
и цикл завершится, когда $num!=79
$num = 79; // to make sure the loop will iterate at least once
while( $num==79 ){
$num = rand(48, 122);
}
согласно вашему запросу, кроме 111, измените условие, как показано ниже:
while( $num==79 || $num==111)
do-while будет использовать то же условие, и нет необходимости назначать 79 в качестве начального значения, так как do-while будет запускаться хотя бы один раз.
$num = 0; //just to declare the variable
do {
$num = rand(48, 122);
} while ($num == 79); // you can use || here too: while ($num == 79 || $num == 111)
В обоих случаях логика неверна, вы повторяете цикл, пока ваш номер не является 79
Вы должны повторить цикл, если число является 79:
$num = 79;// assign value to avoid Notice error
while($num == 79){
$num = rand(48, 122);
};
или же:
do {
$num = rand(48, 122);
} while ($num == 79);
попробуй этот код
$num = 0;
while(true){
$num = rand(48,122);
if( $num != 79){
break;
}
}