绳锯木断,水滴石穿!
PHP > switch语句中的case穿透

switch语句中的case穿透

2020-10-03 分类:PHP 作者:Agoni 阅读(792)

这篇文章主要介绍了在switch语句当中因为未写break语句所出现的称为case穿透的一种现象;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
switch语句的正常格式:
        switch(表达式)
        {
            case1:
                语句1:
                break;
            case2:
                语句2:
                break;
            ...
            default:
                语句n+1:
                break;
        }
1
2
执行流程:首先用switch后面的表达式的值和case后面的值进行比较,若和值1相等则执行语句1,不相等就与case2
值进行比较,若相等则执行语句2,  以此类推,如果到default之前没有相等的情况则执行default中的语句结束.

以下是正常情况下的代码格式;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function switchTest(){
    $a = 1;
    switch($a){
        case 9:
            echo 9;
            break;
        case 1:
            echo 1;
            break;
        case 8:
            echo 8;
            break;
        default:
            echo '错误';
    }
}
switchTest();
这种情况下的输出结果是:1

以下的代码格式出现了所谓的case穿透的现象;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function switchTest(){
    $a = 1;
    switch($a){
        case 9:
            echo 9;
            break;
        case 1:
            echo 1;
            // break;
        case 8:
            echo 8;
            // break;
        default:
            echo '错误';
    }
}
switchTest();
这种情况下的输出结果是:18错误
1
2
3
4
5
6
7
这种现象称为case穿透,产生这种现象的原因是:由于某个case语句中缺少或者漏写break语句所导致的结果.
同时:switch语句中应当注意的是:
 1. default在末尾的时候它里面的break可以省略.
 2. case后面只能跟常量,不能跟变量.
 3. default可以在switch语句的任何位置.
 4. 切记在case语句中缺少break会出现case穿透现象.
 5. switch语句遇见break结束,或者程序默认执行到末尾结束.

「 有志者自有千计万计,无志者只感千难万难 」

赞(1) 打赏
1

谢谢,共同进步~

支付宝
微信
标签:

上一篇:

下一篇:

你可能感兴趣

1 条评论关于"switch语句中的case穿透"

  1. Agoni 本站站主 Windows NT Chrome 86.0.4238.2

    测试

博客简介

loading......
姓名:张峰
性别:男
爱好:女
喜欢:旅游,煲剧,写书法,写博客,欢迎一起交流。。。。。。

精彩评论

友情链接

没有人陪你走一辈子,所以你要适应孤独,没有人会帮你一辈子,所以你要奋斗一生!申请交换友链

站点统计

  • 文章总数: 24 篇
  • 草稿数目: 0 篇
  • 分类数目: 10 个
  • 独立页面: 1 个
  • 评论总数: 21 条
  • 链接总数: 3 个
  • 标签总数: 26 个
  • 访问总量: 8082055 次
  • 最近更新: 2021年10月13日
服务热线:
 1995****175

 QQ在线交流

 旺旺在线