打破开关盒

时间:2014-08-07 18:21:32

标签: switch-statement break

想知道如果中断是在if语句中,我是否可以突破我的情况,或者如果中断只是退出if而不是case。如果执行else,我只想通过下一个案例。感谢

  case PS_STARTED:
     readyForPwrDn_b = appReadyForPwrDn_b;

     if (!readyForPwrDn_b)
     {
        break;
     }
     else
     {
        CurrentPowerState_e = PS_COMPLETE;
     }
     //fallthrough

  case PS_COMPLETE:

2 个答案:

答案 0 :(得分:3)

没有突破if这样的事情。 break仅适用于switch和我熟悉的所有编程语言中的循环。

PHP

  

break 结束当前 for foreach 的执行,而 do-while < / em>或切换结构。

Javascript

  

break语句终止当前的循环,开关或标签语句,并将程序控制转移到终止语句后的语句。

C++

  

中断语句与条件转换语句一起使用,执行用于用于循环语句。

但是,这些都适用于未标记的break语句。在某些语言中,您可以写:

myIf: 
    if (!readyForPwrDn_b) {
        break myIf;
    } else {
        CurrentPowerState_e = PS_COMPLETE;
    }

这只会突破if

答案 1 :(得分:0)

if (condition)
{
    //Do your thing

    if (breakOutCondition)
        return;

    //Continue your code
}

这个if语句可以工作,但有一个简单,干净的方法可以摆脱这样的循环。您可以使用goto来破坏这个变量范围,它会让它变得更加干净。警告:goto有时会让人感到害怕,因为它本质上是一种伪装的破坏。

if (breakoutcondition)
{
    ...
    goto foo;
    ...
}
foo:
//Continue here