[英]C++: Short question regarding switch and break
例:
switch( x )
{
case y:
if ( true )
{
break;
}
cout << "Oops";
break;
}
如果switch語句選擇y
,是否會將Oops
寫入標准輸出? switch
語句中的break
是一個動態關鍵字(例如“ continue”),可以在條件下調用該關鍵字,還是一個靜態關鍵字(例如,右括號}
?
break
封閉的switch
, while
, for
或do ... while
。 它不會脫離封閉的if
或裸露的塊。 非常像continue
。
它當然不是switch語句所需語法的一部分(例如,右括號是塊語法的一部分)。 break
是一條語句,其本質含義是“將執行轉移到最里面的易碎構造的末尾”。
不, Oops
我們不會將其寫出來, break
跳到該語句后面。
您可以有條件地使用break
語句,只需要在創建還支持break
(即循環)的嵌套語句時小心即可。
break
絕對是動態的。 因此,如果您寫if (false) break;
您的Oops
會被寫出。
在這種情況下,將break
視為goto end_of_switch
。
不,您的情況下不會打印出來。 break
僅中斷開關和循環,而不中斷條件或函數或任意封閉范圍。 因此,一個更相關的問題是在這種情況下是否會打印Oops:
switch( x )
{
case y:
for ( int i = 0; i < 10; ++i )
{
break;
}
cout << "Oops";
break;
}
這里的答案是肯定的,它會的。 break
將突破for
而不是switch
。
不會。它將脫離開關構造。 “ break”用於走出最內層的循環結構或開關結構。 因此,在您的情況下,“哎呀”不會在屏幕上打印出來。 如果您希望這種情況發生,可以在代碼中使用if(false)代替if(true)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.