前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >switch语句

switch语句

作者头像
pigeon
发布2022-04-11 17:36:32
1.5K0
发布2022-04-11 17:36:32
举报
文章被收录于专栏:电子荣耀

switch语句

使用if语句嵌套解决实际问题中的多分支选择时,如果分支数目非常多,那么if语句的嵌套层数也会很多,使得程序代码变得冗长而且可读性会下降。C语言提供了switch语句来处理多分支选择。

switch语句的语法形式如下:

代码语言:javascript
复制
switch(表达式){
  case 常量1: 语句或语句组1;
  case 常量2: 语句或语句组2;
  ……
  case 常量n: 语句或语句组n;
  default: 语句或语句组n+1;
}

举例

题目描述:从键盘上输入一个字符,判断并输出它是数字、空格还是其他字符,如果是空格,则输出空格提示;如果是数字,则输出是哪一个数字;如果是其它字符,则输出其它提示。

思路分析:从题目可知,需要判断分支比较多,包括10个数字字符、1个空格字符和其他字符共12个分支,使用switch语句解决该问题比较方便,同时仔细分析可以发现10个数字字符的处理方式是相同的,因此这10个分支可以共用同一组语句,程序流程如下图所示。

答案参考:

代码语言:javascript
复制
#include <stdio.h>
   int main()
   {
       char ch;
       printf("Input a character: ");
       ch=getchar();
       switch(ch)
       {
           case '0':
           case '1':
           case '2':
           case '3':
           case '4':
           case '5':
           case '6':
           case '7':
           case '8':
           case '9':
               printf("digit:%c\n",ch);
               break;
           case ' ':
               printf("space\n");
               break;
           default:
               printf("other\n");
       }
       return 0;
   }

输出结果:

使用switch语句的注意事

(1) switch后面表达式的值的类型必须是整型、字符型或枚举类型。每一个case常量的类型必须与表达式值的类型相同,而且每个case常量的值必须是互不相同的。

(2) default分支是可选的,当一个switch语句中没有default分支时,如果没有与switch表达式的值相同的case常量,则不执行任何语句,程序转移到switch语句的下一条语句执行。

(3) 各个case分支及default分支的出现次序可以交换,无论如果排列各个分支的次序,总是按照switch表达式的值来选择某个分支执行。

(4)一个case块内的代码执行完毕,如果没有遇到break,后面还有case块,则继续执行该case块内的代码。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 电子荣耀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档