牙牙乐 发表于 2020-2-25 18:02:00

关于switch语句

#include <stdio.h>

int main()
{
      char ch;
      int a, e, i, o, u;

      a = 0;
      e = 0;
      i = 0;
      o = 0;
      u = 0;

      printf("请输入一个英文句子:");

      while ((ch = getchar()) != '\n')
      {
                switch (ch)
                {
                        case 'a':
                        case 'A': a++;
                                  break;
                        case 'e':
                        case 'E': e++;
                                  break;
                        case 'i':
                        case 'I': i++;
                                  break;
                        case 'o':
                        case 'O': o++;
                                  break;
                        case 'u':
                        case 'U': u++;
                                  break;
                }
      }

      printf("您输入的句子中,包含元音字母%d个!\n", a + e + i + o + u);
      printf("其中:a(%d),e(%d),i(%d),o(%d),u(%d)\n", a, e, i, o, u);

      return 0;
}
请问case 输入大写字母后面为什么要跟一个++ ?还有就是为啥case 输入小写后面就不用跟东西

te___amo 发表于 2020-2-25 18:11:02

不是不用加这个代码的意思的不区分大小写case后面只有遇到break才会跳出switch   没有遇到break 就会继续向下执行

major_lyu 发表于 2020-2-25 18:12:33

++的意思是字符对应的计数器加一啊。
小写字母后面的:后面不写东西的意思是,执行下一个case即大写字母对应的语句啊!

Aseeker 发表于 2020-2-25 18:18:26

这个题目的意思是当你输入的是元音字母,不论是大小写对应的元音字母数量都+1。

case'a':
case'A':a++;
          break;
在符合case'a'条件后,执行case'a'后面的语句。并因为第一个case'a'后面没有break;所以会自动执行下面case'A'的a++;break; 只有遇到break;或执行完才会下一轮

意思就是当你输入小写a或大写A时,都是元音字母,数量+1;

牙牙乐 发表于 2020-2-25 18:33:51

major_lyu 发表于 2020-2-25 18:12
++的意思是字符对应的计数器加一啊。
小写字母后面的:后面不写东西的意思是,执行下一个case即大写字母对 ...

懂了懂了 谢谢大佬

牙牙乐 发表于 2020-2-25 18:34:33

te___amo 发表于 2020-2-25 18:11
不是不用加这个代码的意思的不区分大小写case后面只有遇到break才会跳出switch   没有遇到break 就会 ...

明白了明白了 谢谢大佬
页: [1]
查看完整版本: 关于switch语句