switch-case语句

和if-else方法一样,switch-case和break一起用于选择不同的语句块执行。

我们首先了解一下,switch-case语句的语法。

switch(表达式)
{
    case 常量表达式1: 
    /*如果 表达式==常量表达式1,执行以下语句*/
    statement1;
    statement2;
    .
    .
    statementn;
    break;

    case 常量表达式2:
    /*如果 表达式==常量表达式2,执行以下语句*/
    statement1;
    statement2;
    .
    .
    statementn;
    break;

    default:
    /*如果表达式和以上的常量表达式都相等,执行以下默认语句*/
    statement1;
    statement2;
    .
    .
    statementn;
}
  1. switch括号内的表达式必须为字符或整数,不允许使用实数或浮点值。
  2. switch括号内的表达式决定了要选择执行的语句块。如果该表达式与任何常量表达式都不匹配,则将执行语句块。
  3. break语句可终止语句继续执行,并跳转至该switch 语句的末尾。
  4. 如果没有break的情况下,程序继续执行下一种case的语句直到遇到break或语句结束。
  5. case后的跟着的表达式必须是常量表达式,否则会编译出错。

例程:

#include<stdio.h>

int main()
{
    unsigned int weekNum;

    printf("输出一个月内每天的起床时间。");

    printf("\n你要查看第几周的起床时间?\n");
    scanf("%d",&weekNum);
    printf("\n我第%d周的起床时间。",weekNum);
     switch(weekNum)
     {
       case 1:
        printf("\nMonday   : 6:45AM");
        printf("\nTuesday  : 6:45AM");
        printf("\nWednesday: 6:45AM");
        printf("\nThrusday : 6:45AM");
        printf("\nFriday   : 6:45AM");
        printf("\nSaturday : 6:45AM");
        printf("\nSunday   : No Alarm");
        break;
       case 2:
        printf("\nMonday   : 6:45AM");
        printf("\nTuesday  : 7:45AM");
        printf("\nWednesday: 8:45AM");
        printf("\nThrusday : 5:45AM");
        printf("\nFriday   : 6:45AM");
        printf("\nSaturday : 7:45AM");
        printf("\nSunday   : No Alarm");
        break;
       case 3:
        printf("\nMonday   : 5:45AM");
        printf("\nTuesday  : 6:45AM");
        printf("\nWednesday: 7:45AM");
        printf("\nThrusday : 6:15AM");
        printf("\nFriday   : 6:45AM");
        printf("\nSaturday : 8:45AM");
        printf("\nSunday   : No Alarm");
        break;
       case 4:
        printf("\nMonday   : 6:45AM");
        printf("\nTuesday  : 6:05AM");
        printf("\nWednesday: 8:45AM");
        printf("\nThrusday : 5:15AM");
        printf("\nFriday   : 6:45AM");
        printf("\nSaturday : 7:45AM");
        printf("\nSunday   : No Alarm");
        break;
       default:
        printf("\输入错误!请输入正确的周数。");
     }
    return 0;
}

以上例程的任务是根据用户的输入,查看一个月内的起床闹钟时间。例如,当我根据提示输入'2'查看第二周的起床闹钟时间,执行结果如下:
switch

下一节