do while循环和break还有continue的问题

一、do while:先执行,后判断

do while 的最大特点是至少执行一次,通用格式为:

do { 
代码体 
} while(条件);Code language: JavaScript (javascript)

注意末尾必须有分号 ;

while 的核心对比:

  • while:先判断条件,成立才执行(可能一次都不执行)。
  • do while:先执行一次代码,再判断条件(起码执行一次)。

二、代码解析

代码:

$total = 0;
$num = 101;
do {
    $total = $total + $num;  // 第一次无条件执行
} while($num <= 100);Code language: PHP (php)

执行结果分析:

  1. 初始 $num = 101,条件明显不成立。
  2. do 先执行了一次累加:$total = 0 + 101,结果为 101
  3. 接着判断 101 <= 100(假),循环结束。
  4. 最终 echo $total 输出 101(并非 1-100 的和,这里是为了演示“条件不成立也执行一次”)。
  5. 循环外 echo $num 依然输出 101(PHP 作用域特性,循环外可调用)。

若换成普通 while($num <= 100),则一次都不会执行,$total 为 0。

三、breakcontinue 在循环中的效果

最后一个 while 代码($num 从 0 开始,打印并累加,遇 5 特殊操作):

语句作用代码表现(遇 $num == 5最终输出特征
continue跳过本次,进入下一次判断跳出本次循环剩余代码(不执行 $total 累加),回到 while($num<10) 继续打印 0-4,跳过5的累加,继续打印6-9;$total 不含5的累加值
break终止整个循环直接结束 while,不再判断条件打印 0-4,遇5直接结束;$total 只累加到4,后续不执行

注释精准:continue 是“跳出这次”,break 是“打断结束整个”。

四、三种循环 + 控制语句

循环类型执行逻辑适用场景搭配 break/continue
for已知次数,初始化/条件/自增集中1到100遍历均可,continue常配合自增防死循环
while先判断,可能0次条件未知(如“输入正确才停”)break结束,continue跳本次
do while先执行1次,再判断至少跑一次(如“菜单至少显示一次”)同上,但因先执行,需注意首次数据

PHP 作用域提醒:​ 三种循环中定义的变量(如 $num$total)在循环外依然可用(与 C/Java 不同)。

五、区别

最后一个代码若用 break

// $num 从 0 开始
// 输出 0,1,2,3,4,遇5时 break,循环结束
// $total 累加的是 0+1+2+3+4 = 10(注意$num++是后置,打印后加1,但累加在后面,需细推)Code language: JSON / JSON with Comments (json)

若用 continue

// 输出 0-9,但 $num==5 时跳过累加,其他正常
// 注意: $num++ 在 echo 里,若 continue 前未自增会死循环,但此处 $num++ 已执行,安全Code language: JSON / JSON with Comments (json)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注