switch语句中的case穿透

这篇文章主要介绍了在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结束,或者程序默认执行到末尾结束.
本文为 今天也想见到你 博客文章,转载无需和我联系,但请注明来自 今天也想见到你 博客 0925.wang

评论

  1. 博主
    Windows Chrome 86.0.4238.2
    4年前
    2020-10-05 19:04:30

    测试

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇