PHP之流程控制

​ 流程控制语句对于任何一门编程语言来说都是至关重要的,它能够控制程序的执行顺序。合理使用这些控制结构可以使程序流程清晰、可读性强,从而提高开发效率。

条件控制语句

if语句

​ if语句的格式:

<?php
	if(表达式){
		语句1;
		语句2;
		...
	}
?>	

流程控制图

YES
开始
表达式
条件判断
输出A
结束

代码示例:判断随机数是不是偶数

<?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{
        语句;
    }
?>

流程图

YES
NO
开始
表达式
条件判断
输出A
输出B
结束

代码示例:判断随机数是偶数还是奇数

<?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;
    }

流程图

YES
NO
YES
NO
开始
表达式
条件1
输出A
条件2
输出C
输出C
结束

代码示例:判断某个日期是该月的哪一旬

<?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;
    }
?>

流程图

开始
输入
条件
输出A
输出B
输出C
输出N
结束

代码示例:选择第三方登录接口

<?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循环语句流程控制图:

Created with Raphaël 2.2.0 开始 初始化表达式 条件表达式(真或假?) 程序块 迭代表达式 结束框 yes no

代码示例:

<?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循环流程控制图:

Created with Raphaël 2.2.0 开始 条件表达式(真或假?) 程序块 结束框 yes no

代码示例:

<?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循环流程控制图:

Created with Raphaël 2.2.0 开始 程序块 条件表达式(真或假?) 结束框 yes no

代码示例:

<?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 
原文地址:https://www.cnblogs.com/z1r0s/p/14284120.html