3 回答

TA貢獻1777條經(jīng)驗 獲得超10個贊
好吧,原因之一就是清晰度。
如果您有開關(guān)/盒,則表達式無法更改....即
switch (foo[bar][baz]) {
case 'a':
...
break;
case 'b':
...
break;
}
而如果使用if / else,則如果您寫錯(或意圖):
if (foo[bar][baz] == 'a') {
....
}
else if (foo[bar][baz+1] == 'b') {
....
}
人們在閱讀您的代碼時會懷疑“ foo表達式應(yīng)該是相同的”還是“為什么它們不同”?

TA貢獻1789條經(jīng)驗 獲得超10個贊
還請記住,switch語句允許控制流繼續(xù)進行,這允許您很好地組合條件,同時允許您為某些條件添加其他代碼,例如以下代碼:
switch (dayOfWeek)
{
case MONDAY:
garfieldUnhappy = true;
case TUESDAY:
case WEDNESDAY:
case THURSDAY:
case FRIDAY:
weekDay = true;
break;
case SATURDAY:
weekendJustStarted = true;
case SUNDAY:
weekendDay = true;
break;
}
if/else相反,在這里使用語句并不是那么好。
if (dayOfWeek == MONDAY)
{
garfieldUnhappy = true;
}
if (dayOfWeek == SATURDAY)
{
weekendJustStarted = true;
}
if (dayOfWeek == MONDAY || dayOfWeek == TUESDAY || dayOfWeek == WEDNESDAY
|| dayOfWeek == THURSDAY || dayOfWeek == FRIDAY)
{
weekDay = true;
}
else if (dayOfWeek == SATURDAY || dayOfWeek == SUNDAY)
{
weekendDay = true;
}
- 3 回答
- 0 關(guān)注
- 421 瀏覽
添加回答
舉報