Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
考试Qn:将do while循环转换为for循环(PHP)_Php - Fatal编程技术网

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

考试Qn:将do while循环转换为for循环(PHP),php,Php,最近,我的考试结束了。我上次的考试是基于PHP的。我考试得到了以下问题: “在不影响输出的情况下,使用for循环转换以下脚本:-” 先生,我的电脑出站了,请帮帮我,我真的很困惑。好吧,如果我理解得很好,你必须使用“for”循环,而不是“do…while”,但打印文本不得更改 尝试: $count=10; $x=0; $firstRun=true; 对于(;$count>1 | |$firstRun;){ $firstRun=false; 回声($count.“”); $count-=2; $

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

“在不影响输出的情况下,使用for循环转换以下脚本:-”



先生,我的电脑出站了,请帮帮我,我真的很困惑。

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

尝试:

$count=10;
$x=0;
$firstRun=true;
对于(;$count>1 | |$firstRun;){
$firstRun=false;
回声($count.“
”); $count-=2; $x=$x+$count; } echo(x美元);
顺便说一下,循环是不必要的,因为在第一个循环之后$count将大于1,所以while将变为false

编辑

  • $firstRun避免无限期
  • 循环中的$count
编辑

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

  • 我不知道你的老师是否想拥有你。。。但是do{}将只执行一次,因为$count从不小于1

    教师代码的输出为:
    10
    八,

    我认为代码中有一个错误,while应该是while($count>1),这会更有意义(因为要求循环只输出10 8是很奇怪的),并且会导致此输出:
    10
    8
    6
    4
    2
    二十

    那么一个好的for()循环应该是:

    $x = 0;
    $count = 10;
    for($i = $count; $i > 1; $i -= 2)
    {
        $count -= 2;
        echo $i . "<br>";
        $x += $count;
    }
    echo $x;
    
    $x=0;
    $count=10;
    对于($i=$count;$i>1;$i-=2)
    {
    $count-=2;
    回声$i.“
    ”; $x+=$count; } echo$x;
    将输出相同的值。
    如果可以,请向老师询问,并对答案进行评论^^ahahah

    您的脚本输出
    10
    8
    。这是正确的还是应该在10次迭代中减少2次?请更正或下拉问题bro..你是对的。代码中有错误。但是我真的想知道如何将do-while循环更改为for循环(而不是上面的代码)?这将导致无限循环。在第一次迭代中
    10<1 | 10==10
    ,在第二次迭代中
    8<1 | 8==8
    。另外,不确定
    $i<1
    应该做什么。我认为OP的PHP是错误的,他们实际上希望它输出10,8,6,4,2。如果这是真的,那么您的代码可以简单地
    for($i=$count;$i<$count;$i-=2){…
    。对了,修复了(现在也测试了xD)对不起,代码中有错误。但是我想知道如何将do while循环更改为for循环?(不适用于上面的代码)@Joe我刚刚更改了,并从for()中删除了$count感谢您的回答,SaphyraSorry,代码中有错误。但我想知道如何将do while循环更改为for循环?(不适用于上述代码)它的工作方式不一样,所以主要取决于do-while中的模式和指令……你不能仅仅以一种独特的方式将do-while转换为for循环,这种方式每次都能工作,而不管代码的内容如何。哦!好的,谢谢你澄清我的疑问。现在,我应该删除这个问题,因为它有错误,还是应该退出你应该用好的代码编辑它,然后你会在考试中得到一个好答案;)
    $count = 10;
    $x = 0;
    $firstRun = true;
    for(; $count > 1 || $firstRun;) {
        $firstRun = false;
        echo ($count . "<BR>");
        $count -= 2;
        $x = $x + $count; 
    }
    echo ($x);
    
    $x = 0;
    $count = 10;
    for($i = $count; $i > 1; $i -= 2)
    {
        $count -= 2;
        echo $i . "<br>";
        $x += $count;
    }
    echo $x;