weiwei_baby
weiwei_baby
采纳率33.3%
2018-03-02 05:35

switch/case语句中判断问题

5
已采纳

面试例题1:下面的switch语句输出什么。[日本著名软件企业F公司2013年2月面试题]

int n='c';

switch(n++)

{default:printf("error");break;

case 'a':case'A':case 'b':case'B':printf("ab");break;

case 'c':case 'C':printf("c");

case 'd':case 'D':printf("d");}

A.cdd B.cd C.abcd D.cderror

解析:本题考的是switch中的“fall through”:如果case语句后面不加break,就依次执行下去。

所以先顺序执行,考虑n的初始值,从'c'开始查找输出(default和ab直接略过),输出c;没有break,那么继续输出后面的,输出d。

答案:B

我在这想问的是在case 'c':case 'C':printf("c");这条语句中为什么能输出c?第二个case判断的是大写C ,而此时n是小写c,所以不应该直接跳过printf语句吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • wanggui2015 wallesyoyo 3年前

    多个case写在一起,代表他们是共享一个入口的。

    点赞 2 评论 复制链接分享
  • Aobilage Aobilage 3年前

    case 'c':case 'C'表示无论switch里的表达式是‘c’还是‘C’,输出的语句相同 可以理解成或的概念

    点赞 评论 复制链接分享
  • F512723691 F512723691 3年前

    输出cdaaa,多个case没有break,会连续执行

    点赞 评论 复制链接分享

相关推荐