• 微信号
目录

php基础

您当前的位置:首页 > 我的笔记 > php基础>选择结构switch语句-流程控制语句

选择结构switch语句-流程控制语句

Switch条件语句是一种很常用的选择语句,和if不同,它只针对某个表达式的值做出判断,从而决定执行哪一段代码。

如,用数字1-7表示星期一到星期天,根据输入的数字输出对应的星期。可能会想到使用if……else if……else……来实现,但由于判断条件过多,实现的代码会比较长。PHP提供了switch来实现这种要求。

在switch语句使用switch关键字来描述一个表达式,使用case关键字来描述和表达式结果比较的目标值,但表达式的值匹配目标值时,会执行对应case下的语句。

Switch语句的基本语法结构如下:

<?php
	switch(表达式){
		case 目标值1:
		执行语句1
		break;
		case 目标值2:
		执行语句2
		break;
		……
		case 目标值n:
		执行语句n
		break;
		default:
		执行语句
		break;
	}
?>

在上述语法格式中,switch将表达式的值与每一个case中的目标值进行匹配,如果找到对应的匹配值,就会执行cse后的语句,如果没有找到目标值,就会执行default后的语句。Switch语句中的break关键字为跳出switch语句。

工作原理:
  • 对表达式(通常是变量)进行一次计算
  • 把表达式的值与结构中 case 的值进行比较
  • 如果存在匹配,则执行与 case 关联的代码
  • 代码执行后,break 语句阻止代码跳入下一个 case 中继续执行
  • 如果没有 case 为真,则使用 default 语句

案例:

<?php
$week=5;
	switch($week){
		case 1:
		echo "星期一";
		break;
		case 2:
		echo "星期二";
		break;
		case 3:
		echo "星期三";
		break;
		case 4:
		echo "星期四";
		break;
		case 5:
		echo "星期五";
		break;
		case 6:
		echo "星期六";
		break;
		case 7:
		echo "星期天";
		break;
		default:
		echo "输入数字不正确";
		break;
	}
?>

在使用switch语句中,如果多个case条件后面的语句是一样的,则该执行语句只需要书写一次即可,这是一种简写的方式。

如判断一周的某一天为工作日还是休息日。(输入1、2、3、4、5视为工作日,6、7视为休息日)

<?php
$week=7;
	switch($week){
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
		echo "今天是工作日";
		break;
		case 6:
		case 7:
		echo "今天是休息日";
		break;
		default:
		echo "请输入正确数字";
		break;
	}
?>

其他事项

1. 可以使用分号“;”代替cse后的冒号“:”,执行效果一样。

2. php中,switch语句中的break也可以使用continue代替,作用基本相同

3. 在switch语句执行代码的最后,包含一条break语句很重要。如没有break语句,程序会一直执行下一个case语句,并最终达到默认语句。大多数情况下都会导致结果错误。一定要在适当的地方使用break语句。