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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

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

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