考试Qn:将while while循环转换为for循环(PHP)

时间:2018-05-29 18:04:19

标签: php

最近,我的考试结束了。我的上一次考试是基于PHP的。我的考试得到了以下问题:

"使用for循环转换以下脚本而不影响输出: - "

<?php
 //Convert into for loop
 $x = 0;
 $count = 10;
 do
 {
  echo ($count. "<BR>");
  $count = $count - 2;
  $x = $x + $count; 
 }
 while($count < 1)
 echo ($x);
?>

请帮助我,因为我的电脑先生不在车站,我真的很困惑。

2 个答案:

答案 0 :(得分:0)

好吧,如果我理解得很好,你必须使用“for”循环,而不是“do ... while”,但打印的文本不能改变。

尝试:

$count = 10;
$x = 0;
$firstRun = true;
for(; $count > 1 || $firstRun;) {
    $firstRun = false;
    echo ($count . "<BR>");
    $count -= 2;
    $x = $x + $count; 
}
echo ($x);

顺便说一下循环是不必要的,因为在第一个循环之后$ count将大于1,因此while将变为false。

修改

  • $ firstRun以避免infiniteLoop
  • $ count in loop

修改

  • 新要求的固定代码
  • 删除了不必要的代码

答案 1 :(得分:0)

嗯,我不知道你的老师是否想要拥有你...但是do {}只会执行一次因为$ count永远不会&lt; 1。

教师代码的输出是:
10个
8

我认为代码中有一个错误,而while会是while($ count&gt; 1),这会更有意义(因为要求循环输出只有10 8这是奇怪的)和会导致这个输出:
10个
8
6
4
2
20

然后一个好的for()循环就是:

$x = 0;
$count = 10;
for($i = $count; $i > 1; $i -= 2)
{
    $count -= 2;
    echo $i . "<br>";
    $x += $count;
}
echo $x;

将输出相同的值。 如果可以的话,请向老师询问,并评论答案^^ ahahah