You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP考试编程题:将do while循环转换为for循环且不改变输出

搞定你的PHP循环转换问题

嘿,刚考完试辛苦啦!我来帮你把这段do-while循环转成for循环,保证输出结果和原代码一模一样~

首先先理清楚原代码到底在干嘛,这样你也能明白转换的逻辑:

  • 一开始定义了$x = 0,$count = 10
  • 因为是do-while循环,所以不管条件怎么样,先执行一遍循环体:
    1. 先输出10加换行<BR>
    2. 把$count减2,变成8
    3. 把新的$count加到$x里,$x就变成8了
  • 然后检查循环条件$count < 1:这时候$count是8,显然不满足,循环直接终止
  • 最后输出$x,也就是8

接下来是转换好的for循环代码,两种写法都可以,你看哪种顺眼用哪种:

第一种是更贴合原代码步骤的写法,几乎完全复刻原逻辑:

<?php
// 转换后的for循环
$x = 0;
// for循环的初始化给$count赋值10,条件部分留空(确保至少执行一次),循环后不做操作
for ($count = 10; ; ) {
    echo ($count . "<BR>");
    $count = $count - 2;
    $x = $x + $count;
    
    // 检查原循环的终止条件,当$count不小于1时就跳出循环
    if ($count >= 1) {
        break;
    }
}
echo ($x);
?>

第二种是把$count的更新放到for循环的第三个部分,写法更紧凑:

<?php
// 紧凑版for循环写法
$x = 0;
for ($count = 10; ; $count -= 2) {
    echo ($count . "<BR>");
    $x += $count - 2; // 这里等价于先减2再加到$x,和原逻辑一致
    
    // 同样判断终止条件
    if ($count - 2 >= 1) {
        break;
    }
}
echo ($x);
?>

小提示

原do-while循环的核心是「先执行、再判断」,而普通for循环是「先判断、再执行」,所以我们把for的条件位留空,在循环体里手动判断终止条件并break,这样就能完美复现do-while的执行顺序,输出结果自然和原代码完全一样~

内容的提问来源于stack exchange,提问作者Joe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:00:14