0%

分支和循环之switch语句

文章时效性提示

本文发布于 521 天前,部分信息可能已经改变,请注意甄别。

switch语句是一种分支语句,常用于多分支情况。
switch允许嵌套使用。

输入数字判断星期几

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
int main()
{
    int day = 0;
    scanf("%d",&day);
        if (1 == day) {
            printf("星期一");
        } else {
            if (2 == day) {
                printf("星期二");
            } else {
                if (3 == day) {
                    printf("星期三");
                } else {
                    if (4 == day) {
                        printf("星期四");
                    } else {
                        if (5 == day) {
                            printf("星期五");
                        } else {
                            if (6 == day) {
                                printf("星期六");
                            } else {
                                if (7 == day) {
                                    printf("星期日");
                                } else
                                {
                                }
                            }
                        }
                    }
                }
            }
        }
        return 0;
}

使用switch语句简化上面的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
int main()
{
    int day = 0;
    scanf("%d",&day);
    switch (day)//switch后的括号里的类型必须是整型
        {
            case 1://case后面必须是整型常量表达式
                printf("星期一\n");
                break;//跳出分支,和case搭配使用
            case 2:
                printf("星期二\n");
                break;
            case 3:
                printf("星期三\n");
                break;
            case 4:
                printf("星期四\n");
                break;
            case 5:
                printf("星期五\n");
                break;
            case 6:
                printf("星期六\n");
                break;
            case 7:
                printf("星期日\n");
                break;
        }
    return 0;
}

switch后的括号里的类型必须是整型
case后面必须是整型常量表达式
break是跳出分支的意思,和case搭配使用。

break把语句列表划分为不同的部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
int main()
{
    int day = 0;
    scanf("%d",&day);
        switch (day) {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("工作日\n");
            break;
        case 6:
        case 7:
            printf("休息日\n");
            break;
    }
    return 0;
}

输入1-5输出工作日,6-7输出休息日。
良好的代码风格是把最后一个语句后也加上break。

default子句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
int main()
{
        switch (day) {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                printf("工作日\n");
                break;
            case 6:
            case 7:
                printf("休息日\n");
                break;
            default://如果输入的不是1-7,进入default
                printf("输入错误\n");
                break
                //良好的代码风格是每个switch语句中都加上default子句和break
        }
    }
    return 0;
}

default子句的是输入非法语句时执行的内容。
良好的代码风格是每个switch语句中都加上default子句和break。