当前位置:首页 > 经验 >

switchcase语句的用法(switch后面的case语句的用法)

来源:原点资讯(www.yd166.com)时间:2024-03-28 09:11:36作者:YD166手机阅读>>

多层嵌套的 if-else 语句在语法上是正确的,但逻辑上却没有正确地表达程序员的意图,例如,意料之外的 else-if 更可能不会注意到而被溜过去;C语言还提供了另一种用于多分支选择的switch语句,作为一种在一组互斥的项目中做选择的替代方法,根据变量的不同取值来执行不同的代码块。其一般形式为:

switch(表达式){

case 表达式1: 语句1;

case 表达式2: 语句2;

case 表达式n: 语句n;

default: 语句n 1;

}

计算表达式的值,然后逐个与case后的表达式值进行比较,当case后的表达式的值与switch表达式的值相等时, 即执行对应case后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

int main(void){

int a;

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");

default:printf("error\n");

}

return 0;

}

如果我们输入1,case 1:后面的语句开始执行,但是程序并没有再执行这条语句后停止,而是继续执行下面的case语句,包括default,直到程序结束。这是因为我们必须显式地告诉编译器停止执行switch中的语句,这可以通过在switch语句内的每个执行单元后指定一个break语句来完成 在大多数条件下一个 case标签的最后一条语句是break。当遇到 break 语句switch语句被终止。正确的代码如下:

int main(void){

int a;

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;

default:printf("error\n");

}

return 0;

}

那么程序员什么时候希望省略 break 语句?如果多个 case 语句都执行相同的功能代码时,允许程序执行多个 case 标签!例如输入学生成绩,大于90分为优,大于70分为一般,大于60分为良,小于60分为差,可用以下代码实现:

int main(void){

int score;

scanf("%d",&score);

switch (score/10){

case 10:

case 9: printf("优\n"); break;

case 8:

case 7: printf("一般\n"); break;

case 6:printf("良\n"); break;

default:printf("差\n");

}

return 0;

}

把case标签一个接一个堆起来,以强调这种情形代表的是一个要被匹配的范围,例如case10和case9为一组,超市score/10等于10或者9,即90分以上的条件。

总结:

  • 在case后的各常量表达式的值不能相同,否则会导致编译错误。
  • 在case后,允许有多个语句,可以不用{}括起来。
  • 所有的case都是"或"or的关系,每时每刻只有一个case会满足条件。
  • 每个case中的代码执行完毕后,必须要用break 语句来阻止代码自动地向下一个case运行。
  • 如果不写 break 语句的话,下面所有的 case 语句都会执行一遍。
  • 请使用default关键词来规定匹配不存在时做的事情。可省略不写。

以上是老韩关于Linux c基础的总结欢迎一起讨论,如有不足欢迎指点;对Linux c或者Linux驱动感兴趣的朋友可以收藏关注,我会持续更新的,谢谢支持!

,

栏目热文

case后面加判断语句(case语句有什么规定)

case后面加判断语句(case语句有什么规定)

VBA中除了if判断结构外还有Select...Case语句。在判断单个变量的时候,Select...Case语句较好。...

2024-03-28 08:52:59查看全文 >>

case语句的高级使用(case语句有什么规定)

case语句的高级使用(case语句有什么规定)

SQL的CASE语句是一个非常有用的工具,用于在查询结果中根据条件返回不同的值。它可以根据特定的条件执行不同的操作,并且...

2024-03-28 09:09:50查看全文 >>

多个case语句怎么用(case语句的优缺点)

多个case语句怎么用(case语句的优缺点)

今日的内容是"VBA之EXCEL应用"的第六章"条件判断语句(If...Then...Else)...

2024-03-28 09:12:23查看全文 >>

case的三种用法(case的用法总结大全)

case的三种用法(case的用法总结大全)

Verilog HDL语言中存在两种分支语言:● If-else 条件分支语句● case 分支控制语句1. if-el...

2024-03-28 08:59:58查看全文 >>

case语句用法举例(case语句可以加条件吗)

case语句用法举例(case语句可以加条件吗)

今天在专栏中跟大家介绍SCL编程语句的CASE语句的使用,利用本文举一个比较常用的功能:通过液位控制排污阀的示例。这个示...

2024-03-28 08:36:35查看全文 >>

孙膑老婆简历(孙膑的妻子和儿子是谁)

孙膑老婆简历(孙膑的妻子和儿子是谁)

孙膑的父亲孙膑的父亲孙膑,这位春秋时期末期的军事家,尽管其确切的生卒年份无从考究,但他的成就与影响却是不容忽视的。至于他...

2024-03-28 08:51:35查看全文 >>

历史上的孙膑老婆是谁(历史上孙膑的妻子)

历史上的孙膑老婆是谁(历史上孙膑的妻子)

看了三十计,公孙悦 与 孙膑的爱情观 ,您最欣赏哪个?战国时期魏国庞涓手下的谋士公孙悦为了自己喜欢 的钟离秋,通过千方百...

2024-03-28 08:37:47查看全文 >>

孙膑娶了谁做媳妇(孙膑的妻子和儿子是谁)

孙膑娶了谁做媳妇(孙膑的妻子和儿子是谁)

孙膑是春秋战国著名的军事学家,以足智多谋而出名。他和庞涓同为鬼谷子徒弟,庞涓心胸狭窄,处处争强好胜;孙膑待人宽厚善良,谦...

2024-03-28 08:56:13查看全文 >>

孙膑有几个儿子(孙膑是孙子的孙子吗)

孙膑有几个儿子(孙膑是孙子的孙子吗)

在《六部春秋》里,从兵圣孙武子、燕国驸马小圣人孙操,到齐国南鲁王孙膑,他们一家三代是一个大悲剧,死的不得好死,生的生不如...

2024-03-28 09:06:26查看全文 >>

孙膑的妻子及后代(孙膑的妻子叫什么名字)

孙膑的妻子及后代(孙膑的妻子叫什么名字)

貌美如花的妹妹钟离秋孙膑,战国时期齐国人,著名军事家孙武的孙子,一生富有传奇色彩,为后人留下《孙膑兵法》,他的名扬天下离...

2024-03-28 08:43:50查看全文 >>

文档排行