笔记||switch语句

switch语句是多分支选择语句,通俗地讲,就是多个if。

当嵌套的if比较少时,用if编写程序比较简洁。

当嵌套的if比较多时,用switch编写程序比较合适。

实现多分支选择结构的switch语句的具体形式如下:

switch (表达式)

{

case 常量1:语句组1

case 常量2:语句组2

case 常量3:语句组3

case 常量n:语句组n

default :语句组n+1

}

  • switch 后面的表达式应该是一个确定的值。

  • case之后只能是常量或者常量表达式,应是确定的值,不能是变量或者其他表达式。

  • case 后面的常量值应该各不相同,且应该为switch表达式的可能的取值。

  • 语句组可以是一条语句,多条语句,或者没有语句。

  • 语句组中可以使用break终止switch语句的执行。

下以例子进行引入。

例1,利用switch函数模拟电梯


/*switch模拟电梯*/
#include<stdio.h>
int main (void)
{
    int i;
    printf("请输入您想去的楼层:\n");
    scanf("%d",&i);
    switch (i)
    {
    case 1:
        printf("1层开!\n");
        break;
    case 2:
        printf("2层开!\n");
        break;
    case 3:
        printf("3层开!\n");
        break;
    default:
        printf("该层不存在,请重新输入\n");
    }
    return 0;
}

例2:输入一个百分制成绩,输出其成绩等级。等级范围为:

90分以上 等级为A级

89~90 等级为B级

79~70 等级为C级

69~60 等级为D级

60分以下 等级为E级


此例中有5条分支,若要通过if语句的嵌套实现,嵌套层数太多。所以选择用switch语句比较合适。

对于我来说的难点,常量1、常量2、常量3……

解决:总分数除以10,定义分数为int型,这样相除得到 10、9、8、7、……

/*根据成绩输出其成绩等级*/
#include<stdio.h>
int main (void)
{
    int score;
    printf("请输入分数:");
    scanf("%d",&score);
    if (score>=0 && score<=100)
    {
        switch (score/10)
        {
        case 10:
            printf("A\n");
            break;
        case 9:
            printf("A\n");
            break;
        case 8:
            printf("B\n");
            break;
        case 7:
            printf("C\n");
            break;
        case 6:
            printf("D\n");
            break;
        default:
            printf("E\n");
            break;
        }
    }
    
    else
    {
    printf("您输入的成绩与实际情况不相符");
    }
    
    return 0;
}

注意格式规范化,if 后加表达式,且表达式后面没有冒号!

else 后面不能加表达式,也不能加冒号。

虽然else执行的语句只有一句,但是最好也是用“{}”规范!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

釉色清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值