写点什么

【web 开发基础】PHP 中的特殊流程控制(break) -PHP 快速入门 (20)

作者:迷彩
  • 2022-10-28
    广东
  • 本文字数:1358 字

    阅读完需:约 4 分钟

前言

我们在介绍 while 和 for 循环的时候,都是通过循环语句本身提供的条件表达式来指定循环的次数,或者是遇到特殊情况要停止循环。如果想在循环体执行过程中终止循环,或是跳过一些循环继续执行其他循环,就需要使用到特殊的流程控制语句。如:break 语句,continue 语句,exit 语句。接着下面就来详细了解 PHP 中 break 语句的用法和相关概念。

break 语句

在 PHP 中,break 语句是用来中断当前循环或者中断分支结构的,或和 label 一起使用,可中断相关联的语句。break 可以结束当前 for,foreach,while,do...while 或者 switch 分支结构的执行。其语法格式如下:


break [label];
可选的 label 参数指定断点处语句的标签。
复制代码

下图为 break 在不同循环结构中的使用格式:


编程实践


下面以 for 为例来说明 break 语句的基本使用方法及其功能。以输出九九乘法表为例,尝试在双层嵌套 for 循环中使用 break 语句,当外层 for 循环执行第 5 次时使用 break 退出循环,层 for 循环也使用 break 退出循环。其代码如下:

<?phpfor($i=9;$i>=1;$i--){	if($i<5){		break;	}	for($j=$i;$j>=1;$j--){		if($i<5){			break;		}		echo "$j x $i = " . ($j*$i) . "&nbsp;&nbsp;";	}	echo "<br>";}
复制代码

执行结果如下图所示:

在循环中使用 break 流程大致如下:


使用 break 语句可以将深埋在嵌套循环中的语句退出到指定层数或直接退出到最外层。break 通过接受一个可选的数字参数来决定跳出几重循环语句或是几重 switch 语句,下面我们就来看看 PHP 中 break 语句在 while 和 switch 中的使用:

<?php$i = 0;while(++$i){	switch($i){		case 6:			echo "变量为6时,只退出switch语句<br>";			break 1; 		case 12:			echo "变量\$i为12时,不仅退出switch同时退出while循环<br>";			break 2;	}}
复制代码

执行结果如下:

上面的代码是外层一个 while 语句循环内嵌一层 switch 语句,第 7 行代码中 "break 1",是使用 break 退出 1 层,即是只退出 switch 语句,第 10 行代码中"break 2",使用 break 退出两层。即是退出 switch 的同时退出 while。


在 PHP 中 foreach 主要是用于数组的遍历,foreach 也是我们实际开发中最常用到的一种循环结构。foreach 也叫增强 for 循环,可以说是 foreach 的一个特殊简化版;foreach 有两种语法:

第一种:遍历给定的 数组语句 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元):

foreach (array_expression as $value) 
复制代码

第二种:同上,同时当前单元的键名也会在每次循环中被赋给变量 $key

foreach (array_expression as $key => $value)
复制代码

接着我们继续看看 break 在 foreach 中的使用:当遍历到数组中的值等于 5 时,退出循环。

<?php
$arr = array(1,2,3,4,5,6,7,8,9);foreach($arr as $v){ if($v == 5) { break; } echo $v."<br>";}
复制代码

执行结果:


总结

在实际的使用中,我们不会平白无故直接退出循环,一般结合 if 判断是否达到某个条件才会退出当前循环。break 在 PHP 的使用跟在其他编程语言中的用法基本是一样的,PHP 中 break 语句有以下两种用法:

  1. 当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句

  2. 它可用于终止 switch 语句中的一个 case

如果你使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。

发布于: 刚刚阅读数: 4
用户头像

迷彩

关注

我的工作是常年写bug|公众号:编程架构之美 2020-06-18 加入

修bug的菜鸟~公众号:“互联网有啥事”已改名为“编程架构之美”

评论

发布
暂无评论
【web 开发基础】PHP中的特殊流程控制(break) -PHP 快速入门 (20)_break_迷彩_InfoQ写作社区