不二如是 发表于 2017-6-24 11:27:35

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]
查看完整版本: 0 0 2 9 ● switch...case...语句小全