C ++:关于切换和中断的简短问题

时间:2010-04-30 14:51:06

标签: c++ switch-statement

示例:

switch( x )
{
case y:
 if ( true )
 {
    break;
 }
 cout << "Oops";
 break;
}

如果switch语句选择yOops会写入标准输出吗? - break语句中的switch是一个动态关键字,例如continue,可以在条件下调用,也可以像结束括号}那样静态调用?

6 个答案:

答案 0 :(得分:10)

break突破了封闭的switchwhilefordo ... while。它不会突破封闭的if或裸块。非常像continue

它肯定不是switch语句所需语法的一部分(就像close-brace是块语法的一部分)。 break是一个声明,本质上意味着“将执行转移到最内部可破坏结构的结尾之后”。

答案 1 :(得分:1)

不,Oops不会被写出来,break会跳过此声明。

您可以有条件地使用break语句,只需要注意何时创建也支持break的嵌套语句(即循环)。

答案 2 :(得分:0)

break绝对是动态的。所以,如果你写if (false) break;,你的Oops就会被写出来。

答案 3 :(得分:0)

break视为goto end_of_switch

答案 4 :(得分:0)

不,它不会打印在您的情况下。 break仅从开关和循环中断,而不是条件或函数或任意封闭范围。因此,一个更相关的问题是,是否在这个案例中打印了Oops:

switch( x )
{
case y:
 for ( int i = 0; i < 10; ++i )
 {
    break;
 }
 cout << "Oops";
 break;
}

答案在这里是肯定的,它会。 break将突破for,而不是switch

答案 5 :(得分:0)

没有。它会突破开关结构。 “break”用于从最里面的循环结构或开关结构中出来。因此,在您的情况下,屏幕上不会打印出“oops”。如果您希望这样做,在您的代码中,您可以使用if(false)而不是if(true)。