我在C#中遇到以下代碼。如果語句存在於C#中嗎?
if(condition0) statement0;
else if(condition1) statement1;
else if(condition2) statement2;
else if(condition3) statement3;
...
else if(conditionN) statementN;
else lastStatement;
有些同事告訴我,這是一條else if
聲明。不過,我確信它實際上是一個多層嵌套的if-else
聲明。我知道,如果沒有分隔符{}
,則可以在if
或else
中聲明一條語句。所以在這種情況下,我認爲它將等同於下面的代碼。
if(condition0)
statement0;
else
if(condition1)
statement1;
else
if(condition2)
statement2;
else
if(condition3)
statement3;
else
...
請注意,我改變的只是空白。 由於每個else
在沒有分隔符時都會返回到最近的if
語句,因此此縮進可行。
任何人都可以澄清,如果第一個例子中的else if
格式與第二個例子中嵌套的if-else
格式不同,編譯器會對其進行處理嗎?
看起來像'switch'的好例子:) – 2010-07-30 20:00:12
@Russ ha!好雙關! – NickAldwin 2010-07-30 20:00:39
[語言規範](http://msdn.microsoft.com/en-us/vcsharp/aa336809.aspx)會在短時間內清除它。你是對的,但它看起來有點像一個肚臍眼,但它根本沒有實際意義:) – shambulator 2010-07-30 20:12:40