2.2.1、while语句
和 if 语句一样,可以在 while 循环中用花括号括起一个语句组,或者用替代语法:
while (expr):
statement
…
endwhile;
while语句可以像if语句一样嵌套,但是建议不要超过三层
示例:
/ example 1 /
$i=1;
while ($i <=10) {
echo $i++;
}
/ example 2 /
$i=1;
while ($i <=10):
print $i;
$i++;
endwhile;
2.2.2、do…while循环
do…while与while区别是do…while会先执行“语句块”,再执行条件判断。这样,不管如何都会执行一次“语句块”。与while和for相比,do…while使用相对来说较少。
语法格式:
do{
...//语句块
}while(条件);
2.2.3、for循环
语法格式:
for(初始化;条件表达式;增量){
...//语句块
}
for循环中的三个表达式是允许为空的。
eg:
$i=0;
for( ; ; ){
if($i --> 10){
break;
}
echo $i.'
';
$i++;
}
这三个表达式中,每个表达式,还可以编写多条语句,只要其表达式合理,都是可以的。第二个表达式最后一定要是布尔值。
eg:
for($i=0,$j=1 ; $i<10,$j<10 ; $i++,$j+=5){
echo $i.'/'.$j.'
';
}
2.2.4、特殊流程控制语句
①break
break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行。
break 可以接受一个可选的数字参数来决定跳出几重循环,当不给参数数字时,相当于break 1;。
5.4.0版本之后, break 0; 不再合法。这在之前的域名交易版本被解析为 break 1;。
5.4.0版本之后, 取消了变量作为参数传递(例如 $num=2; break $num;)。
eg:
$num=1;
$i=0;
while (++$i) {
switch ($i) {
case 5:
echo "At 5
";
break 1; / 只退出 switch. 这里不能写break 0;也不能写break $num;/
case 10:
echo "At 10; quitting
";
break 2; / 退出 switch 和 while 循环 /
default:
break;
}
}
②continue
continue 在循环结构用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。
continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。默认值是 1,即跳到当前循环末尾。
5.4.0版本之后, continue 0; 不再合法。这在之前的版本被解析为 continue 1;。
5.4.0版本之后, 取消变量作为参数传递(例如 $num=2; continue $num;)。
eg:
$i=0;
while ($i++ < 2) {
echo "Outer
";
while (1) {
echo "Middle
";
while (1) {
echo "Inner
";
continue 3;
}
echo "这里不会被输出";
}
echo "这里不会被输出,因为continue 3已直接跳出本次循环开始下一次循环";
}