提问者:小点点

“for”可以工作,为什么“foreach”在PHP“is prime”代码中不能工作?


“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


共1个答案

匿名用户

当您创建范围(2,$num)时,它将包括该数字。 当您到达if($num%$value==0)时,它将检查if(23%23==0),当然它的计算结果为true。 相反,您需要使范围比数字小一:

foreach (range(2, $num - 1) as $value)