0 0 2 9 ● switch...case...语句小全
本帖最后由 不二如是 于 2017-6-24 11:27 编辑当一个变量或一个表达式有多个值的时候,除了用0 0 2 8 ● if...else if...else...语句小全,还可以使用switch...case语句。
switch结构上,灰常好理解,相当于后续分支的开始,会触发筛选工作。
看一下语法:
<?php
switch (n)
{
case label1:
如果 n=label1,此处代码将执行;
break;
case label2:
如果 n=label2,此处代码将执行;
break;
case labelnx:
如果 n=labelx,此处代码将执行;
break;
default:
如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}
?>
首先对一个简单的表达式 n(通常是变量)进行一次计算。
将表达式的值与结构中每个 case 的值进行比较。
如果存在匹配,则执行与 case 关联的代码。
代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。
default 语句用于不存在匹配(即没有 case 为真)时执行。
流程图:
上代码:
<?php
for($n = 1 ; $n < 6 ; $n++)
{
switch ($n) {
case "1":
echo "$n - We Love FishC"."<br>";
// break;
case "2":
echo "$n - Welcome to FishC.com"."<br>";
// break;
case "3":
echo "$n - FishC need U!"."<br>";
// break;
default:
echo "$n - Change the world by Program"."<br>";
// break;
}
}
?>
握草,为什么那么尴尬!
外层循环,从1到5,按照我们的理解应该,case条件,随着循环体执行一次则对应执行一次。
然而,从上面的图中,我们可以看到,并不是酱紫滴!
聪明的鱼油,应该看到被注释掉的break了
没错,问题症结就在这里,当我们使用switch..case语句时,如果不添加break(跳出):
当某个case条件满足后,仍会继续执行后续的代码,哪怕条件没有满足,也会执行case内部语句。这就解释了为什么当一个数字,第一次满足case条件后,仍会抛出它不满足条件的case语句内部代码。
现在把注释打开,当满足条件后,跳出switch...case语句,继续执行外层for循环。
<?php
for($n = 1 ; $n < 6 ; $n++)
{
switch ($n) {
case "1":
echo "$n - We Love FishC"."<br>";
break;
case "2":
echo "$n - Welcome to FishC.com"."<br>";
break;
case "3":
echo "$n - FishC need U!"."<br>";
break;
default:
echo "$n - Change the world by Program"."<br>";
break;
}
}
?>
在日常开发中,99.999%时候我们都会写break语句哦~
这位鱼油,如果喜欢本系列PHP+MySql+Js帖子,请订阅 专辑☞(传送门)(不喜欢更要订阅{:10_297:} )
页:
[1]