尝试使用PHP“do while”循环查找随机数

尝试使用PHP“do while”循环查找随机数,php,loops,Php,Loops,我想使用PHP做while循环并找到一个随机数 这是代码,它不工作 <?php $start = 10; $end = 1; $find = rand(0,9); do { if ($start == $find): echo "Found!"; elseif ($start != $find): echo $start; $start = $start - $end; endif; } while ($start != $find); ?> 在

我想使用PHP做while循环并找到一个随机数

这是代码,它不工作

<?php

$start = 10;
$end = 1;
$find = rand(0,9); 

do { 
 if ($start == $find):
   echo "Found!";
 elseif ($start != $find):
   echo $start; 
   $start = $start - $end;
 endif;
} while ($start != $find);

?>

在最后一次迭代中,使用$start=$start-$end;$start变量变为$find,您将立即退出循环,因为$start!=$发现在那一刻是错误的。那意味着

if ($start == $find):
     echo "Found!";
永远不会发生。如果您理解了这一点,那么您就理解了始终验证循环外的$start==$find。因此,您可以移动底部的代码:

$start = 10;
$end = 1;
$find = rand(0,9); 

do { 
    if ($start != $find): // ALWAYS true, can be omitted
        echo $start; 
        $start = $start - $end;
    endif;
} while ($start != $find);

if ($start == $find): // ALWAYS true, can be omitted
    echo "Found!";
endif;
费德里科帮助我理解错误,因此我将选择他的答案

但是,这也是我的答案,解释了我试图实现的目标:

<?php

$start = 0;
$end = 1;
$find = 1;

do { 
    $find = rand($start,$end);
    echo $find."<br>";
} while ($start != $find);

if ($start == $find):
    echo "Found!";
endif;

?>
我打算让代码使用一个取自_请求的值来工作,所以实际上这个数字不会是随机的。我只是想了解出了什么问题,以及“边做边用”是如何使用兰德的;功能优先