循环结构:代码段在一定的控制下,可以多次执行。
在php中循环结构有以下几种:
- For 循环:通过条件,起始和终止判断执行;
- While循环:通过判断条件起始终止;
- Do-while循环:跟while差不多;
- foreach循环:专门针对数组。
for循环
for循环基本语法:
for(条件表达式1;条件表达式2;条件表达式3){
//条件表达式1:定义初始化条件,可以有多种赋值语句存在,使用逗号分割即可
//条件表达式2:边界判定,限定循环执行的次数
//条件表达式3:用来执行条件变化(自操作);
//循环体
}
代码演示:
<?php
//循环结构:for循环
//从1到10输出:初始
for ($i = 1; $i <= 10; $i++) {
echo $i;
} ?>
for循环执行原理
- 执行条件表达式1:定义初始化条件(执行一次);
- 执行条件表达式2:判断条件(N次)
2.1 满足条件:执行循环体
2.2不满条件:循环结束- 执行循环体(N次)
- 执行条件表达式3:循环变量变化(N次)
- 重复执行条件表达式2:判断条件(N次)
- 重复执行3-4步骤;直到第二步不满足条件,结束循环。
for循环特殊使用:for循环中对应的括号(条件)可以一个都没有(死循环):一定要避免出现
for(;;){
//循环体
}
while循环
while循环基本语法:
定义条件初始化
while(条件表达式){
//条件表达式就是判断边界条件
循环体 //循环条件的变化
}
代码演示:
<?php
//while循环
//定义条件
$i=1;
//循环判定执行
while($i<10){
//循环体
echo $i++,'<br>';
//循环条件变更
//$i++
?>
for与while的选择
- 如果是基于固定已知条件(数值而且是有规律的变化),使用for循环;
- while可以做灵活的条件判断(while是用的比较多)
do-while循环
do-while看着很像while,while首先进行条件判断然后执行循环体,有可能出现第一次条件就不满足,那么就会直接失败(循环体一次都不执行),do-while就是先干了再说(先执行循环体后判断条件(只少会执行一次循环体))
do-while基本语法
do{
//循环体
}while(条件表达式)
代码演示:
<?php
//do-while循环结构
//输出1-10之间的偶数(条件判断加入)
//定义基础条件
$i =1;
//循环判定
do{
//执行输出
if($i % 2 != 1){
//是偶数
echo $i,'<br>'; //条件变更
}$i++;
}while($i<=10);
?>
循环控制
循环控制:在循环内部对循环本身进行控制
中断循环:重新开始循环,循环体中还有其他内容,有要执行
Continue层级; //默认是1(循环可以多层嵌套)
//循环控制
//需求:输出1到100之间5的倍数
$i=1;
while($i<=100){
//判断:是否是5的倍数
if($i % 5 !=0){
//说明当前$i不是5的倍数
//重新执行
$i++;
continue; //系统重新跳到循环开始处
}
//输出数值
echo $i++,'<br>';
}
终止控制:循环直接结束
break层级: // 默认是1
//循环控制
//需求:输出1到100之间5的倍数
$i=1;
while($i<=100){
//判断:是否是5的倍数
if($i % 5 !=0){
//说明当前$i不是5的倍数
//重新执行
$i++;
//continue; //系统重新跳到循环开始处
//终止循环
break;
}
//输出数值
echo $i++,'<br>';
}
echo $i;
因为循环经常性会碰到嵌套(循环中间包含循环),如果在循环内部有些条件下,明确可以知道当前循环(或者说外部循环)不需要继续执行了,那么就是可以使用循环来实现:其中内部循环也可以控制到外部,就是通过使用层级参数;
continue 2;//当前自己循环后面内部不再执行,同时外部循环如果还有循环体也不再执行,重新来过
流程控制替代语法
流程控制替代语法:分支和循环结果的替代语法;
php本身是嵌入到HTML中的脚本语言,需要在HTML中书写一些关于判断或者循环的结构语法,必须符合php标签规范,需要HTML与php进行混搭,如果使用原始的php代码那么会非常不美观
九九乘法表代码演示:
<table border=1>
<?php for ($i = 1; $i < 10; $i++) { ?>
<tr>
<?php for ($j = 1; $j <= $i; $j++) { ?>
<td>
<?php echo $i . '*' . $j . '=' . $i * $j; ?>
</td>
<?php } ?>
</tr>
<?php } ?>
</table>
在php书写到HTML中的这些大括号{}非常不美观,所以php提供了一种可替代的机制,让其可以不用书写大括号{};
//for(;;){ => for(;;):
//} => endfor;
<table border=1>
<?php for ($i = 1; $i < 10; $i++) : ?>
<tr>
<?php for ($j = 1; $j <= $i; $j++) : ?>
<td>
<?php echo $i . '*' . $j . '=' . $i * $j; ?>
</td>
<?php endfor ?>
</tr>
<?php endfor ?>
</table>
在php中具体有哪些替代语法?
php应该在html中只做数据输出,输出通常伴有条件判断和循环操作,因此php操作对应分支结构和循环结构的替代语法:全部都是对应的一个模式:
左大括号{
使用冒号替代;
右大括号}
使用end+对应的起始标记替代
实例代码可以被替代的代码
if => if(): endif; switch => switch(): endswitch; for => for(;;): endfor; while => while(): endwhile; foreach => foreach(): endforeach;