流程控制语句对于任何一门编程语言来说都是至关重要的,它能够控制程序的执行顺序。合理使用这些控制结构可以使程序流程清晰、可读性强,从而提高开发效率。
条件控制语句
if语句
if语句的格式:
<?php
if(表达式){
语句1;
语句2;
...
}
?>
流程控制图:
代码示例:判断随机数是不是偶数
<?php
$num = rand(1,20);
echo '$num = '.$num;
if($num % 2 == 0){
echo "<br>$num 是偶数。";
}
?>
运行结果:
$num = 4
4 是偶数。
if…esle语句
if…else语句的格式:
<?php
if(表达式){
语句;
}else{
语句;
}
?>
流程图
代码示例:判断随机数是偶数还是奇数
<?php
$num = rand(1,20);
echo '$num = '.$num;
if($num % 2 == 0){
echo "<br>$num 是偶数。";
}else{
echo "<br>$num 是奇数。";
}
?>
运行结果:
$num = 20
20 是偶数。
elseif语句
elseif语句的格式:
<?php
if(表达式1){
语句1;
}elseif(表达式2){
语句2;
}
else{
语句n;
}
流程图:
代码示例:判断某个日期是该月的哪一旬
<?php
date_default_timezone_set('Asia/Shanghai'); // 设置时区
$month = date("n"); // 设置月份变量$month
$today = date("j"); // 设置日期变量$today
if($today > 1 and $today <= 10){ // 判断日期变量是否在1~10之间
echo "今天是".$month."月".$today."日,是本月上旬"; // 如果是说明是上旬
}elseif($today > 10 and $today <= 20){ // 否则判断日期变量是否在11~20之间
echo "今天是".$month."月".$today."日,是本月中旬"; // 如果是,说明是中旬
}else{ // 如果上面两个判断都不符合要求,则输出默认值值
echo "今天是".$month."月",$today."日,是本月下旬"; // 说明是本月的下旬
}
?>
运行结果:
今天是2月10日,是本月上旬
switch语句
switch语句格式:
<?php
switch(变量或表达式){
case 常量表达式1:
语句1;
break;
case 常量表达式2:
...;
case 常量表达式n;
语句n;
break;
default:
语句n+1;
}
?>
流程图:
代码示例:选择第三方登录接口
<?php
// 接收传递的参数,并使用三元运算符判断赋值
$type = isset($_GET['type'] ? $_GET['type'] : '';
// 根据参数值,执行不同的操作
switch($type){
case 'qq':
echo "执行qq登录流程";
break;
case 'wechat':
echo "执行微信登录流程";
break;
case 'weibo':
echo "执行微博登录流程";
break;
default:
echo "执行普通登录流程";
}
?>
运行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YzTx6kUJ-1608643701049)(…/…/…/MarkdownImgs/编程学习/PHP学习/PHP学习笔记/switch语句代码示例运行结果.png)]
注:
- switch语句在执行时,即使遇到符合要求的case语句,也会继续往下执行,直到switch语句结束。为了避免这种浪费时间和资源的行为,一定要在每个case语句段后加上break语句。这里break语句的意思 是跳出当前case语句。
循环控制语句
for循环语句
for循环语法格式:
<?php
for(初始化表达式;条件表达式;迭代表达式){
语句;
}
?>
- 初始化表达式:在第一次循环时无条件取一次值;
- 条件表达式:在每次循环开始前求值,如果值为真,则执行循环体里面的语句,否则跳出循环,继续往下执行;
- 迭代表达式:在每次循环后被执行。
for循环语句流程控制图:
代码示例:
<?php
$sum = 1;
for($i = 1;$i <= 100;$i++){
$sum *= $i;
}
echo "100的阶乘是".$sum;
?>
运行结果:
100的阶乘是9.3326215443944E+157
注:
- 在for循环中,无论是采用循环变量递增还是递减的方式,前提是一定要保证循环能够结束,死循环将导致程序崩溃。
while循环语句
while循环语句格式:
<?php
while(expr){
statement;
}
?>
while循环流程控制图:
代码示例:
<?php
$num = 1;
$str = "10以内的偶数为:";
while($num <= 10){
if($num % 2 == 0){
$str .= $num." ";
}
$num++;
}
echo $str;
?>
运行结果:
10以内的偶数为:2 4 6 8 10
do…while循环语句
do…while循环语句格式:
<?php
do{
statement;
}while(expr);
?>
do…while循环流程控制图:
代码示例:
<?php
$num = 1;
while($num != 1){
echo "执行while循环";
}
do{
echo "执行do...while循环";
}while($num != 1);
?>
运行结果:
执行do...while循环
跳转语句
跳转语句使循环语句使用的范围更加宽泛。
break语句
break关键字可以终止当前的循环。常用于while、do…while、for、switch控制语句中。
代码示例:使用break语句终止循环
<?php
while(true){
$tmp = rand(1,20);
echo $tmp." ";
if($tmp == 10){
echo "<p>变量等于10,终止循环</p>";
break;
}
}
?>
运行结果:
1 9 18 17 2 7 12 9 20 10
变量等于10,终止循环
continu语句
continu关键字,终止本次循环而进入到下一次循环。continue也可以指定跳出几重循环。
代码示例:
<?php
for($i = 0;$i < 5;++$i){
if($i == 2){
continue;
}
echo "$i
";
}
?>
运行结果:
0 1 3 4