2012-10-06 563 views
8

我有兩個問題 - (I)使用 「否則,如果」 在C++中

code-fragment-1 

if(<condition-statement>){ 
} 

else if(<condition-statement-2>){ 
    //statements-1 
} 
//statements-2 

代碼片段的2

if(<condition-statement>){ 
} 

else{ 
    if(<condition-statement-2>){ 
     //statements-1 
    } 
    //statements-2 
} 

是上述兩個代碼片段一樣嗎? (II)何時使用ifs(在C++中)?

回答

9

唯一的區別是實例1中的聲明2將得到執行,無論你檢查的條件。在示例2中,只有在if條件爲false時纔會執行Statement2。除此之外,它們基本相同。

8

不,在第一種情況下,你執行else塊只有只有<condition-statement-2>驗證如果<condition-statement>未驗證

在第二種情況下,如果<codition-statement>未驗證,則執行else塊。

在這種情況下,相當於,直到您沒有任何//語句-2。

一個問題:就是當別人如果(在C++)使用?

的是,有這樣的構造所有其他語言的相同的條件下,基本上使用。 else是如果,else-if被作爲替換的但帶有「附接」 if待驗證,否則不執行執行作爲替代執行相關。 因此,它們在邏輯上不相同。

3

的語法,如果真的是 如果(條件)語句;

真正的功能是讓您將多個語句組合在一起。在第二個例子中,你只有一個聲明(中頻)內的{} S,所以是的,這兩個例子都是一樣的,只不過//語句-2一直被運行時!=真

1

在你的第一個代碼示例,statement-2被無條件執行。第二個是有條件的。不一樣。

'else if'通常是首選項,因爲您可以無限期地繼續插入或追加更多,或者附加一個'else',而使用其他表單時,您必須無限制地使用大括號來獲得相同的效果,並且您冒着改變語義的風險,就像您在第二個示例中所做的那樣。

+0

一個開關語句總是優先於多個「其他如果」分支,或者我得到錯誤的想法 – clockw0rk