“for”可以工作,为什么“foreach”在PHP中不能工作呢?“is prime”!
$num = (int) readline("Enter: ");
$isPrime = "True";
// foreach (range(2, $num) as $value) {
for($value=2; $value<$num; $value++){
if ($num % $value == 0) {
$isPrime = "False";
break;
}
}
echo $isPrime . "\n";
输出for:enter:23 True
输出foreach:enter:23 False
当您创建范围(2,$num)
时,它将包括该数字。 当您到达if($num%$value==0)
时,它将检查if(23%23==0)
,当然它的计算结果为true。 相反,您需要使范围比数字小一:
foreach (range(2, $num - 1) as $value)