• 微信号
  • 微信号
目录

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语句。