2

【C语言】switch 分支语句

 1 year ago
source link: https://blog.51cto.com/u_15814021/5763164
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

🚩write in front🚩   

🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎

🏅2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~阿里云专家博主 & 阿里云星级博主~掘金⇿InfoQ~51CTOP创作者~周榜92﹣总榜826⇿全网访问量35w+🏅

🆔本文由 謓泽 原创 发布在51CTOP 如需转载还请通知⚠

📝个人主页-​ ​謓泽51Ctop的博客​​📃

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝

📣系列专栏-​ ​謓泽51Ctop的分类_51CTO博客​​🎓

✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩

【C语言】switch 分支语句_c语言

🍬 swtich 语句

[if]语句只有两个分支可以可供选择,而在实际问题中常需要用到多分支的选择。当然使用嵌套[if]语句也可以实现多分支的选择,但是如果分支很多的话,就会使得嵌套的[if]语句层数较多,程序代码并不是具有很高的可读性。而且,分支较多的话还会出现配对错误的情况,可读性不好。所以,这个时候C语言就提供了另外一种分支语句。C语言可以使用 [switch] 语句直接处理多分支选择的情况,将我们程序代码的可读性提高!


🍬 switch 语句的基本形式

[switch]语句是多分支选择语句,在我们程序代码中,如果我们觉得用的分支语句较多的时候。这个时候我们就可以用到[switch]语句来代替 [if - else]分支语句。

例如:如果只需要检验某一个整形变量的可能取值,那么这个时候可以用更简便的[switch]语句。[switch]语句的一般形式如下:

switch(表达式)
{
case 常量表达式 1:
语句 1;
case 常量表达式 2:
语句 2;

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

计算表达式当中的值,并且逐个与常量表达式进行比较。当表达式的值与某个常量表达式相等的时候,即执行其后的语句,然后不再进行判断。继续执行后面所有的[case]语句,如表达式的值没有一个和[case]当中的常量表达式相等的时候,则执行[default]默认情况语句块

 例如:程序如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
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

假设编译运行结果:

Input integer number:4
Thursday
Friday
Saturday
Sunday
error 

输入整形数字4,发现和第④个分支匹配成功,于是就执行第四个分支以及后面的所有分支。这显然不是我们想要的结果,我们希望只执行第四个分支,而跳过后面的其他分支。为了达到这个目标,必须要在每个分支最后添加 ​break;​​语句


🔥 break 介绍

是C语言中的一个关键字,专门用于跳出 [switch] 语句。所谓"跳出",是指一旦遇到[break],就不再执行 [switch] 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个[switch] 执行结束了,接着会执行整个 [switch] 后面的代码。

使用上面修改用[break]的代码

#define
#include <stdio.h>
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

🍬 'case'语句的说明 

case 10: printf("..."); break; //正确
case 8+9: printf("..."); break; //正确
case 'A': printf("..."); break; //正确,字符和整数可以相互转换
case 'A'+19: printf("..."); break; //正确,字符和整数可以相互转换
case 9.5: printf("..."); break; //错误,不能为小数
case a: printf("..."); break; //错误,不能包含变量
case a+10: printf("..."); break; //错误,不能包含变量

🔥 说明:注意! 

[switch] 语句检验条件必须是整形表达式,这意味其中也可以包含运算符和函数调用,而[case] 语句检验的值必须是整形常量,即常量表达式或者常量运算

在使用 [switch] 语句时,如果没有一个[case]语句后面的值匹配[switch]的条件,就执行[default]语句后面的代码。其中,任意两个 [case] 语句都不能有相同的常量值;每个[swtich]语句结构都只有一个[default]语句,[default]语句是可以省略的

在 [case] 语句表示条件后有一个冒号":",在编写程序的时候不要忘记


🔥 break 介绍

是C语言中的一个关键字,专门用于跳出 [switch] 语句。所谓"跳出",是指一旦遇到[break],就不再执行 [switch] 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个[switch] 执行结束了,接着会执行整个 [switch] 后面的代码。

使用上面修改用[break]的代码

#define
#include <stdio.h>
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


🍬 'case'语句的说明 

case 10: printf("..."); break; //正确
case 8+9: printf("..."); break; //正确
case 'A': printf("..."); break; //正确,字符和整数可以相互转换
case 'A'+19: printf("..."); break; //正确,字符和整数可以相互转换
case 9.5: printf("..."); break; //错误,不能为小数
case a: printf("..."); break; //错误,不能包含变量
case a+10: printf("..."); break; //错误,不能包含变量

🔥 说明:注意! 

[switch] 语句检验条件必须是整形表达式,这意味其中也可以包含运算符和函数调用,而[case] 语句检验的值必须是整形常量,即常量表达式或者常量运算

在使用 [switch] 语句时,如果没有一个[case]语句后面的值匹配[switch]的条件,就执行[default]语句后面的代码。其中,任意两个 [case] 语句都不能有相同的常量值;每个[swtich]语句结构都只有一个[default]语句,[default]语句是可以省略的

在 [case] 语句表示条件后有一个冒号":",在编写程序的时候不要忘记


🍬 break 介绍

是C语言中的一个关键字,专门用于跳出 [switch] 语句。所谓"跳出",是指一旦遇到[break],就不再执行 [switch] 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个[switch] 执行结束了,接着会执行整个 [switch] 后面的代码。

使用上面修改用[break]的代码

#define
#include <stdio.h>
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


🍬 'case'语句的说明

case 10: printf("..."); break; //正确
case 8+9: printf("..."); break; //正确
case 'A': printf("..."); break; //正确,字符和整数可以相互转换
case 'A'+19: printf("..."); break; //正确,字符和整数可以相互转换
case 9.5: printf("..."); break; //错误,不能为小数
case a: printf("..."); break; //错误,不能包含变量
case a+10: printf("..."); break; //错误,不能包含变量

🔥 说明:注意! 

[switch] 语句检验条件必须是整形表达式,这意味其中也可以包含运算符和函数调用,而[case] 语句检验的值必须是整形常量,即常量表达式或者常量运算

在使用 [switch] 语句时,如果没有一个[case]语句后面的值匹配[switch]的条件,就执行[default]语句后面的代码。其中,任意两个 [case] 语句都不能有相同的常量值;每个[swtich]语句结构都只有一个[default]语句,[default]语句是可以省略的

在 [case] 语句表示条件后有一个冒号":",在编写程序的时候不要忘记。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK