鱼C论坛

 找回密码
 立即注册
查看: 2670|回复: 8

[已解决]switch语句求教

[复制链接]
发表于 2018-3-1 13:19:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <stdio.h>

  2. char *getWord(char);

  3. char *getWord(char c)
  4. {
  5.         switch(c)
  6.         {
  7.                 case 'A': return "Apple";
  8.                 case 'B': return "Banana";
  9.                 case 'C': return "Cat";
  10.                 case 'D': return "Dog";
  11.                 default: return "None";
  12.         }
  13. }

  14. int main()
  15. {
  16.         char input;

  17.         printf("请输入一个字母:");
  18.         scanf("%c", &input);

  19.         printf("%s\n", getWord(input));

  20.         return 0;
  21. }
复制代码



为什么这里case后面不加break也能正常显示运行啊
最佳答案
2018-3-1 13:31:01
因为执行return的时候这个函数就结束了
和break作用一样
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-1 13:31:01 | 显示全部楼层    本楼为最佳答案   
因为执行return的时候这个函数就结束了
和break作用一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-1 14:24:23 | 显示全部楼层
你可以把每个case当做一个入口~
打个比方~
比如 和 第二个case成立了。 他就会从第二个case开始,一直往下执行~ 第二个。第三个。第四个。第五个。。。。。
那为什么需要一个break呢?

break 不是必须的~ 你可以认为他是可选项~
再打个比方~
比如 又第二个case成立了~还是往下读 在第二个case的末尾看到了break,那他还会继续往下读吗。答案是不会~ 你可以认为break在switch里面 是用来中止switch的~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-1 16:42:15 | 显示全部楼层
因为加break只是在你想要的地方停下来,所以加不加都会使程序完整运行,只是不加的话程序会输出switch里面的所有case,而加了break就会执行下去,直到遇到第一个break才会退出。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-2 14:51:29 | 显示全部楼层
char *getWord(char c)
{
        switch(c)
        {
                case 'A': return "Apple";
                case 'B': return "Banana";
                case 'C': return "Cat";
                case 'D': return "Dog";
                default: return "None";

每个函数只能返回一个return  即便执行了后面的语句 也只能返回第一个return
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-2 21:34:07 | 显示全部楼层
当执行到第一个return后,后面的代码全都不执行了,直接返回第一个return的结果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-3 17:41:08 | 显示全部楼层
return 结束了这个函数并返回了一个值。
break 在switch中也代表结束,但是根据需求添加,如果不添加,程序会继续执行,直到遇到break或函数结束为止。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-3 22:03:24 From FishC Mobile | 显示全部楼层
从执行return的地方直接把这个函数结束了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-3 22:34:12 | 显示全部楼层
return 的时候就已经结束了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-7 22:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表