我有一個相當長的switch-case語句。有些案例真的很短小。一些更長,需要一些變量從未使用過其他地方,像這樣:爲switch語句的情況在本地塊中定義一個變量是個好主意嗎?
switch (action) {
case kSimpleAction:
// Do something simple
break;
case kComplexAction: {
int specialVariable = 5;
// Do something complex with specialVariable
} break;
}
另一種方法是再進switch
這樣來聲明變量:
int specialVariable = 5;
switch (action) {
case kSimpleAction:
// Do something simple
break;
case kComplexAction:
// Do something complex with specialVariable
break;
}
這可以變得相當混亂,因爲不清楚該變量屬於哪個case
,並且它使用一些不必要的內存。
但是,我從來沒有在其他地方看到過這種用法。
您是否認爲在塊中爲一個case
本地聲明變量是一個好主意?
每種情況都是範圍嗎?我問,因爲一個案件本身沒有開關沒有意義,當然? – gbn 2010-04-07 19:03:43
@gbn - 本身,「case」不會創建新的範圍。代碼需要添加'{}'來引入新的範圍(如OP在他的第一個示例中所做的那樣)。 – 2010-04-07 19:06:57
是的,你需要創建一個「範圍」的情況下,你打算在情況下使用變量(雙關語)變量將只在這種情況下使用。 – Max 2010-04-07 19:30:17