如何将这段PHP for循环代码改写为while循环?(错误代码求助)
修正PHP while循环生成随机数并判断奇偶的问题
你的while循环代码存在逻辑错误,导致奇偶判断完全失效(实际会输出10个结果,但全部被错误判定为偶数)。错误根源在于把随机数的赋值操作当成了奇偶判断条件:mt_rand(1,100)生成的1-100整数永远是非零值,所以if分支会一直执行,$result永远是'even'。
以下是修正后的代码:
<?php $i = 0; while ($i < 10) { // 先生成1-100的随机数 $number = mt_rand(1, 100); // 正确判断奇偶性 if ($number % 2 == 0) { $result = 'even'; } else { $result = 'odd'; } echo $number . ' (' . $result . ')<br>'; $i++; } ?>
修改说明
- 将随机数生成与奇偶判断拆分开:先通过
$number = mt_rand(1, 100)生成随机数,再用$number % 2 == 0判断是否为偶数,和原for循环的逻辑保持一致。 - 循环计数变量
$i的递增逻辑不变,确保循环执行10次,生成10组结果。
内容的提问来源于stack exchange,提问作者Relebogile Chiloane
相关产品推荐
相关产品推荐

