switch 语句 -- 超详解

目录

语法结构:

在switch 语句中的break

default 子句:

 编程好习惯:


语法结构:

switch(整型表达式)

{

          语句项;

}

那么语句项是什么呢?

//是一些case语句

//如下:

case    整形常量表达式:

            语句;

在switch 语句中的break

#include 
int main()
{
    int day = 0;
    switch (day)  //必须用整形表达式
    {
    case 1:
        printf("星期一\n");
    case 2:
        printf("星期二\n");
    case 3:
        printf("星期三\n");
    case 4:
        printf("星期四\n");
    case 5:
        printf("星期五\n");
    case 6:
        printf("星期六\n");
    case 7:
        printf("星期天\n");
    }
    return 0;
}

在switch语句中我们不能实现分支,就像上面的代码,输入几,就会从几开始执行到最后

switch 语句 -- 超详解_第1张图片

 因此,我们需要结合使用break来实现分支:

#include 
int main()
{
    int day = 0;
    scanf("%d", &day);
    switch (day)
    {
    case 1:
            printf("星期一\n");
            break;
    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;
}

在每个语句项后面加上一个break;

就可以只执行指定的语句,从而实现分支。

ps:

有时在有相同的操作时,我们可以只留下一个执行语句:

#include 
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;
}

default 子句:

如果表达的值与所有的case标签的值都不匹配怎么办?

其实也没什么,结构就是所有的语句都被跳过而已。

程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。

但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?

你可以在语句列表中增加一条default子句:

default:

可以写在任意位置,与case语句一样。

当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。

所以,每个switch语句中只能出现一条default子句。

#include 
int main()
{
    int day = 0;
    scanf("%d", &day);
    switch (day)
    {         
    case 6:
    case 7:
            printf("休息\n");
            break;
    default:
            printf("工作\n");               
    }
    return 0;
}

switch 语句 -- 超详解_第2张图片

 像这样,case语句中没有匹配的项,就执行default语句

 编程好习惯:

在每个case语句后都加上一条break语句

在每个switch语句中都放一条default子句,并且在后边加上一个break语句

你可能感兴趣的:(C语言,c语言)