c语言 switch错误用法,C语言switch语句的详细用法[通俗易懂]

c语言 switch错误用法,C语言switch语句的详细用法[通俗易懂]C语言还为多分支选择提供了另一个switch语句,其一般形式为:开关(表达式){案例常量表达式1:语句1;案例常量表达式2:语句2;…条件常量表达式n:语句n;默认值:语句n+1;}语义是:计算表达式的值.将其与后续常量表达式的值一一比较.当表达式的值等于常量表达式的值时,将执行后续语句,然后不进行判断,并且在个案之后的所有后续语句将继续.如果在所有情况下表达式的值都与常量…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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

ff1423f02b5be99bb2235dbd24ddc6e9.png

C语言还为多分支选择提供了另一个switch语句,其一般形式为:

开关(表达式){

案例常量表达式1: 语句1;

6-810-jpg_6-1080-0-0-1080.jpg

案例常量表达式2: 语句2;

条件常量表达式n: 语句n;

2-810-jpg_6-1080-0-0-1080.jpg

默认值: 语句n + 1;

}

语义是: 计算表达式的值. 将其与后续常量表达式的值一一比较. 当表达式的值等于常量表达式的值时,将执行后续语句,然后不进行判断,并且在个案之后的所有后续语句将继续. 如果在所有情况下表达式的值都与常量表达式不同,则执行default之后的语句.

704966aea0eed8eaefc22471570b2a10.png

[示例4-9]

#include

int main(void){

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;

}

此程序需要输入数字并输出英语单词. 但是在输入3之后,将执行情况3及以后的所有句子c语言 switch语句,并输出星期三及以后的所有单词. 这当然是不希望的. 为什么会这样?这仅反映了switch语句的功能. 在switch语句中,“ case constant expression”仅等效于一条语句标签. 如果表达式的值等于标签,则执行将被重定向到该标签,但是在执行label语句后无法自动跳出整个switch语句,因此似乎继续执行所有后续case语句. 这与之前介绍的if语句完全不同,因此应特别注意.

14-810-jpg_6-1080-0-0-1080.jpg

为避免上述情况,C语言还提供了一个break语句,专用于跳出switch语句. break语句仅具有关键字break,没有参数. 稍后将详细介绍. 修改示例程序,在每个case语句之后添加一个break语句c语言 switch语句,以便在每次执行后可以跳出switch语句,以避免输出意外结果.

[示例4-10]

#include

int main(void){

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

}

return 0;

}

使用switch语句时,还应注意以下几点: 大小写之后的每个常量表达式的值不能相同,否则会发生错误. 在这种情况下,允许使用多个语句,可以将其括在{}中. 可以更改case和default子句的顺序,而不会影响程序执行结果. 默认子句可以省略.

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-286614-1.html

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

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

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


相关推荐

  • vim撤销、回退操作「建议收藏」

    vim撤销、回退操作「建议收藏」打个广告,请有意向加入腾讯的前端,将简历发送至mzxbupt@gmail.com在vi中按u可以撤销一次操作u  撤销上一步的操作Ctrl+r恢复上一步被撤销的操作注意:如果你输入“u”两次,你的文本恢复原样,那应该是你的Vim被配置在Vi兼容模式了。重做如果你撤销得太多,你可以输入CTRL-R(redo)回退前一个命令。换句话说,它撤销一个撤销。要看执行的…

    2022年6月16日
    407
  • 商品分类递归查询Tree结构展示

    商品分类递归查询Tree结构展示

    2021年7月11日
    61
  • MySQL数据库:游标Cursor

    MySQL数据库:游标Cursor

    2021年10月4日
    59
  • Redis客户端中文乱码[通俗易懂]

    Redis客户端中文乱码[通俗易懂]Redis客户端中文乱码$redis-cliredis127.0.0.1:6379>set’name”中文’OKredis127.0.0.1:6379>get’name’"\xd6\xd0\xce\xc4"redis127.0.0.1:6379>客户端查看乱码,这个情况我们只要将修改客户端命令行就可以。redis-cli –raw$r…

    2022年5月7日
    229
  • 深入理解JVM内存分配策略

    深入理解JVM内存分配策略理解JVM内存分配策略三大原则+担保机制JVM分配内存机制有三大原则和担保机制具体如下所示:优先分配到eden区 大对象,直接进入到老年代 长期存活的对象分配到老年代 空间分配担保对象优先在Eden上分配如何验证对象优先在Eden上分配呢,我们进行如下实验。打印内存分配信息首先代码如下所示:publicclassA{publicst…

    2022年5月14日
    43
  • 群体遗传学—admixture软件快速群体分群

    群体遗传学—admixture软件快速群体分群群体遗传学中测的很多个个体,得到了最终的SNPvcf文件,需要将其分成群体,看那几个物种聚在一起,一般使用的软件就是STRUCTURE,但是STREUTURE运行速度极慢,后面frappe软件提升了速度,但是也不是很快;admixture凭借其运算速度,成为了主流的分析软件。admixture软件一共分为5步:#step1/USER/zhusitao/Software/vcft

    2025年7月8日
    0

发表回复

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

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