BeautyLife Studio
  • 首页
  • 相册
  • 美丽人生
    • 故事
    • 情感
    • 技术
    • 旅行
    • 闲话
  • 欢乐时光
  • 我的作品
  • 联系我
  • Sign in
2020-07-02 作者:陈 梦海

我的C语言学习笔记(七)

我的C语言学习笔记(七)
2020-07-02 作者:陈 梦海

6.0.0 switch-case结构

6.1.0 什么是switch-case结构

switch-case结构被称为选择结构。

6.2.0 switch-case的语法结构

  • 语法:

switch (表达式)

{

case 值1:

        执行代码;

           break;

case 值2:

         执行代码;

         break;

case 值3:

         执行代码;

         break;

default:

         执行代码;

    break;

   }

注意:switch后的表达式没有说必须是一个条件表达式。

6.3.0 执行步骤

  • 先计算switch后面的表达式的结果;
  • 从上到下的将这个结果和每一个case后面的值进行相等比较判断;
  • 如果有一个相等,那么就执行其中的代码,执行完毕之后,就结束整个switch结构;
  • 如果不想等,那就再判断下一个case的值;
  • 如果所有的case的值和表达式的结果都不相等,就执行default中的代码。

6.4.0 一些例子

  • 语法例子:

int num = 10;

switch (num + num)

{

case 10:

printf(“AAA\n”);

break;

case 20:

printf(“BBB\n);

break;

case 30:

printf(“CCC\n);

break;

default:

printf(“over\n”);

break;

}

  • 实际例子:

请用户输入一个星期数,输出对应的英文星期名称。1-7,否则显示“你是火星来的吗?”

int weekDay = 0;

printf(“请输入1-7之间的一个数,表示星期几:”);

scanf(“%d”,&weekDay);

switch (weekDay)

{

case 1:

printf(“Monday\n”);

break;

case 2:

printf(“Tuesday\n”);

break;

case 3:

print(“Wednesday\n”);

break;

.

.

.

default:

printf(“你是火星来的吗?\n”;

break;

}

6.5.0 注意事项

  • switch后面的括号里可以写一个表达式、变量、常量;
  • case穿透

每一个case块后面的break在语法上是可以不写的。

break的意思代表立即结束整个switch-case结构。

如果没有case块中没有写break,会穿透到下一个case块执行其中的代码,直到遇到有break的case块结束。如果没有break,则一直执行到所有case块结束。

所以在写代码时,一般情况下要注意不要漏掉break。

但是也有例外:例如用户输入一个月份,然后对应输出这个月份所属的季节。

int month = 0;

printf(“Please insert a month:”);

scanf(“%d”,&month);

switch (month)

{

case 1:

case 2:

case 3:

printf(“It’s Spring!\n”);

break;

case 4:

case 5:

case 6:

printf(“It’s Summer!\n”);

break;

以下类似并省略……

所以利用case穿透可以简写代码,利用的是多个case块的处理逻辑是一样的情况。

  • switch后面的表达式的结果除了小数以外其他都是可以的。是小数就报错。
  • case块可以加大括号,这样写没有任何影响。但是一般情况下不写大括号。
  • 一个case块里可以写任意行代码,只要符合代码逻辑。但是要注意,如果要在case块中声明变量,则必须将这个case块内的代码用大括号括起来。
  • case块可以有任意个,并且default可以省略掉,如果省略就没有默认执行代码了。

6.6.0 与if结构的关系和区别

  • 能够使用switch-case结构写出来的代码一定可以用if结构写出来,但是反之则不行。
  • switch-case结构只能做等值判断,不能直接做范围判断。并且case后面的数据不能有变量。但是if结构可以都可以做到。
  • 使用建议:

如果是做等值判断,建议使用switch-case结构;如果是范围判断建议使用if结构。

上一篇BBC:碳水化合物的真相下一篇 我的C语言学习笔记(八)

发表评论 取消回复

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

BeautyLife Studio

遇见美丽的事物,总掩饰不住自己想要留下她的冲动。无论是用镜头、还是用文字,都想要永久记录下她的美好……

It’s a BeautyLife.

2020年7月
日 一 二 三 四 五 六
 1234
567891011
12131415161718
19202122232425
262728293031  
« 6月   8月 »

最近的文章

2021年上半年日剧推荐2021-04-07
日本和歌山县旅行指南2021-03-26
到访晴天王国2021-02-09
咖啡情缘2021-02-08
东京适合一个人“静静”的好地方2021-02-07

分类

情感 (2) 技术 (23) 故事 (13) 旅行 (9) 闲话 (7)

赞助商

网站地图

首页

相册

文章

歌曲

图书与APPs

留言

WeChat: shibakaede

最新发表

2021年上半年日剧推荐2021-04-07
日本和歌山县旅行指南2021-03-26
到访晴天王国2021-02-09
咖啡情缘2021-02-08
东京适合一个人“静静”的好地方2021-02-07
Copyright by 2020-2021 BeautyLife Studio ❤ Made by Alan C.

陈梦海

创始人兼首席设计师、撰稿人。

“愿我们的人生永远美丽!”

这是BeautyLife Studio一生的愿望!

 

站内搜索