C语言switch语句的用法详解_c语言switch语句例题

C语言switch语句的用法详解_c语言switch语句例题C语言虽然没有限制ifelse能够处理的分支数量,但当分支过多时,用ifelse处理会不太方便,而且容易出现ifelse配对出错的情况。例如,输入一个整数,输出该整数对应的星期几的英文表示:#includeintmain(){inta;printf(“Inputintegernumber:”);scanf(“%d”,&a);if(a==1){printf(“Mo…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

C语言虽然没有限制 if else 能够处理的分支数量,但当分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对出错的情况。例如,输入一个整数,输出该整数对应的星期几的英文表示:

#include

int main(){

int a;

printf(“Input integer number:”);

scanf(“%d”,&a);

if(a==1){

printf(“Monday\n”);

}else if(a==2){

printf(“Tuesday\n”);

}else if(a==3){

printf(“Wednesday\n”);

}else if(a==4){

printf(“Thursday\n”);

}else if(a==5){

printf(“Friday\n”);

}else if(a==6){

printf(“Saturday\n”);

}else if(a==7){

printf(“Sunday\n”);

}else{

printf(“error\n”);

}

return 0;

}

运行结果:

Input integer number:3

Wednesday

C语言还提供了另外一种多分支选择的语句——switch 语句,它的基本语法格式如下:

switch(表达式){

case 常量表达式1: 语句 1;

case 常量表达式2: 语句 2;

……

case 常量表达式n: 语句 n;

default: 语句 n+1;

}

它的执行过程是:首先计算“表达式”的值,然后从第一个 case 开始,与“常量表达式x”进行比较,如果与当前常量表达式的值不相等,那么就不执行冒号后边的语句 x,一旦发现和某个常量表达式的值相等了,那么它会执行之后所有的语句,如果直到最后一个“常量表达式 n”都没有找到相等的值,那么就执行 default 后的“语句 n+1”。

需要注意的是,当找到一个相等的 case 分支后,会执行该分支以及之后所有分支的语句。例如:

#include

int main(){

int a;

printf(“Input integer number:”);

scanf(“%d”,&a);

switch(a){

case 1: printf(“Monday\n”);

case 2: printf(“Tuesday\n”);

case 3: printf(“Wednesday\n”);

case 4: printf(“Thursday\n”);

case 5: printf(“Friday\n”);

case 6: printf(“Saturday\n”);

case 7: printf(“Sunday\n”);

default:printf(“error\n”);

}

return 0;

}

运行结果:

Input integer number:4

Thursday

Friday

Saturday

Sunday

error

输入4,发现和第四个分支匹配,于是就执行第四个分支以及后面的所有分支。这显然不是我们想要的结果,我们希望只执行第四个分支,跳过后面的所有分支。

为了避免这种情况,C语言还提供了一个关键字 break,专门用于跳出switch语句。

switch 的分支语句一共有 n+1 种,而我们通常希望的都是选择其中的一个分支来执行,执行完后就结束整个 switch 语句,而继续执行 switch后面的语句,此时就可以通过在每个分支后加上 break 语句来实现了。如下:

switch (表达式){

case 常量表达式1: 语句1; break;

case 常量表达式2: 语句2; break;

……

case 常量表达式n: 语句n; break;

default: 语句n+1; break;

}

加了这个 break 语句后,一旦“常量表达式 x”与“表达式”的值相等了,那么就执行“语句 x”,执行完毕后,由于有了 break 则直接跳出 switch 语句,继续执行 switch 语句后面的程序了,这样就可以避免执行不必要的语句。

使用switch语句修改上面的代码:

#include

int main(){

int a;

printf(“Input integer number:”);

scanf(“%d”,&a);

switch(a){

case 1: printf(“Monday\n”); break;

case 2: printf(“Tuesday\n”); break;

case 3: printf(“Wednesday\n”); break;

case 4: printf(“Thursday\n”); break;

case 5: printf(“Friday\n”); break;

case 6: printf(“Saturday\n”); break;

case 7: printf(“Sunday\n”); break;

default:printf(“error\n”); break;

}

return 0;

}

运行结果:

Input integer number:4

Thursday

值得一提的是,由于default是最后一个分支,匹配后不会再执行其他分支,所以也可以不用break;语句。

以上就是对C语言switch语句的资料整理,学习 C语言条件语句的同学可以参考下。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179267.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Linux基础语法

    Linux基础语法LInuxlinux一切皆文件读写(权限)入门概述我们为什么要学习Linuxlinux诞生了这么多年,以前还喊着如何能取代windows系统,现在这个口号已经小多了,任何事物发展都有其局限性都有其天花板。就如同在国内再搞一个社交软件取代腾讯一样,想想而已基本不可能,因为用户已经习惯于使用微信交流,不是说技术上实现不了解而是老百姓已经习惯了,想让他们不用,即使他们自己不用亲戚朋友还是要用,没有办法的事情。用习惯了windows操作系统,再让大家切换到别的操作系统基本上是不可能的事情,改变一

    2022年5月18日
  • 安卓dtmf识别_使用Goertzel算法识别DTMF信号

    安卓dtmf识别_使用Goertzel算法识别DTMF信号Goertzel算法Goertzel算法由GeraldGoertzel在1958年提出,用于数字信号处理,是属于离散傅里叶变换的范畴,目的是从给定的采样中求出某一特定频率信号的能量,用于有效性的评价。这个算法有几个关键的参数:采样率R,指的是需要分析的数据每秒钟有多少个采样目标频率f,指的是需要检测并评价的这个频率的值检测区段采样值数量N,也就是每N个采样这个算法会对频率f给出评价检测区段包含目…

    2022年11月1日
  • 进口fbx角色动画read-only解

    进口fbx角色动画read-only解

    2022年1月6日
  • Laravel 上传excel,读取并写入数据库 (实现自动建表、存记录值

    Laravel 上传excel,读取并写入数据库 (实现自动建表、存记录值

    2021年10月24日
  • Java 审计之SSRF篇

    Java审计之SSRF篇0x00前言本篇文章来记录一下JavaSSRF的审计学习相关内容。0x01SSRF漏洞详解原理:服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过

    2021年12月12日
  • Redis入门指南(第2版) – 电子书下载 -(百度网盘 高清版PDF格式)

    Redis入门指南(第2版) – 电子书下载 -(百度网盘 高清版PDF格式)Redis入门指南(第2版)-李子骅在线阅读百度网盘下载(z793)书名:Redis入门指南(第2版)作者:李子骅格式:EPUB,HTMLZ,PDF路径:点击打开排序作者:李子骅排序书名:Redis入门指南(第2版)日期:0812月2018uuid:ed21285a-4c67-40ce-b811-4d407b40b4a9id…

    2022年4月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号