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

前端之家收集整理的这篇文章主要介绍了c – case-switch是否像这样工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我今天遇到了一个代码转换代码,看到它是如何工作的,有点惊讶.代码是:
switch (blah)
{
case a:
  break;
case b:
  break;
case c:
case d:
case e: 
  {
    /* code here */
  }
  break;
default :
  return;
}

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

解决方法

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

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

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

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

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

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

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

原文链接:https://www.f2er.com/c/117680.html

猜你在找的C&C++相关文章