上一篇文章介绍了关于if语句相关的知识,接下来就介绍switch语句相关知识及用法。
switch语句也是一种分支语句,在实际应用中,很多事情都得做出选择,当情况不是很多的时候可以使用前面介绍过的if 语句,但是当要面临的选择很多时,如果仍然使用if 语句的话,就会很繁琐,所以就有了switch语句,换句话说就是switch语句常用于多分支的情况。
switch语句是一个多分支语句,并且可以支持嵌套。
基本格式:
switch (表达式)
{
case 常量1:语句1
case 常量2:语句2
default:语句n
break;
}
这里,表达式的值会和case后面的常量进行匹配,如果能匹配的上,就执行其对应的语句;如果没有匹配的上,则执行default里面的语句。
不过,需要我们注意的是:
(1)switch()括号里的表达式的类型必须是整数类型,而case和default 必须用一对{ } 括起来。
(2)每个case分支以及default分支出现的次序是可以交换的,它们的出现次序不影响执行效果,无论如何排列每个分支的次序,都总是按照switch表达式的值来选择某个分支执行的。(但从程序的可读性的角度来看,最好还是按照顺序写代码)
(3)一个case块内的代码执行完毕结束之后,如果没有遇到 break, 但后面还有case块的话,则继续执行case块内的代码。
(4)大家可千万记住:switch语句是“选择”语句,而不是“循环”语句。往往在我们刚接触这些知识的时候,一看到break 就以为是跳出循环语句,当然,break是有这样的用法,但可不是这里哦!
(5)case常量表达式只是起语句标号的作用,并不是在该处进行判断。
(6)在程序中,可以选择不要default语句,但是,为了避免让阅读代码的人忘了你进行default处理,而且能提醒别人switch结束了,所以最好是加上。
(7)default写在任何一个case标签可以出现的位置,当switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行,所以,每个switch语句中只能出现一条default子句。但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。
无论干什么事,都得养成一个好习惯,当然写代码也不例外,在每个switch语句中都放一条default子句是一个好习惯,甚至可以在后边再加一个break。
举个例子吧:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++;
case 2:
n++;
case 3:
switch (n)
{
case 1:
n++;
case 2:
m++;
n++;
break;
}
case 4:
m++;
break;
default:
break;
}
printf("m = %d, n = %d\n", m, n);
return 0;
}
执行结果:
好啦,关于switch语句的分享就到这里就结束啦,后期会陆续更新文章,新手可能对知识的理解有误解,若有错误,欢迎各位大佬及小伙伴们提出吆。
呼~,写完了,给个一赞三连吧,嘻嘻。