示例:
switch( x )
{
case y:
if ( true )
{
break;
}
cout << "Oops";
break;
}
如果switch语句选择y
,Oops
会写入标准输出吗?
- break
语句中的switch
是一个动态关键字,例如continue,可以在条件下调用,也可以像结束括号}
那样静态调用?
答案 0 :(得分:10)
break
突破了封闭的switch
,while
,for
或do ... 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)。