微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – case-switch是否像这样工作?

我今天遇到了一个代码转换代码,看到它是如何工作的,有点惊讶.代码是:
switch (blah)
{
case a:
  break;
case b:
  break;
case c:
case d:
case e: 
  {
    /* code here */
  }
  break;
default :
  return;
}

令我惊讶的是,在变量为c的情况下,路径进入了“此处代码”段.我同意在案例开关的c部分结束时没有中断,但我会想象它会通过认值.当你降落在一个案例时:行,是不是检查你当前的值是否与特定情况相符,然后只让你进入特定的段?否则案件有什么意义?

解决方法

这称为案例落实,是一种理想的行为.它允许您在案例之间共享代码.

如何使用案例直通行为的示例:

switch(blah)
{
case a:
  function1();
case b:
  function2();
case c:
  function3();
  break;
default:
  break;
}

如果在blah == a时输入开关,则执行function1(),function2()和function3().

如果您不希望出现此行为,可以通过包含break语句来选择退出.

switch(blah)
{
case a:
  function1();
  break;
case b:
  function2();
  break;
case c:
  function3();
  break;
default:
  break;
}

switch语句的工作方式是(或多或少)执行goto跳转到case标签,并从那一点继续运行.当执行中断时,它会离开开关块.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐