2013-10-11 58 views
-2

我的問題可能很奇怪,甚至是不必要的。如果聲明和省略其他片段1它會做任何傷害總是滿足條件if語句和if-else語句的安全性

if (condition 1) { 

    // code here 

    if (condition 2) { 

     // code here 

    } 
} 

或者是片斷2更好?

if (condition 1) { 

    // code here 

    if (!condition 2) { 
     return; 
    } 

    else { 

     // code here 

    } 
} 
+0

我不明白這一點。你問是否可以省略if語句的else分支?準確地說,是 – 2013-10-11 11:39:01

+0

@ H2CO3。 – WangYudong

+0

如果你需要使用'else' – Math

回答

0

一些指導方針(例如在汽車行業)指定必須包含else語句,即使它是空的。在這種情況下,你可以在else語句裏面做一個註釋,說明你實際上不想在它裏面做任何事情。

我能想到的一個優點就是這個。如果您有:

if (condition) 
    doSomething(); 
doSomethingElse(); 

在這種情況下,如果該案件將執行DoSomething的()和其他情況下將執行doSomethingElse()。如果您現在修改您的代碼,如下所示:

if (condition) 
    doSomething(); 
doSomethingElse(); 
doAnother(); 

您認爲會發生什麼?其他情況只會執行doSomethingElse()。 doAnother()將在兩種情況下執行(if和else)。但這真的是你想要的嗎?也許是的,也許不是。也許你想要這樣的東西:

if (condition) 
{ 
    doSomething(); 
} 
else 
{ 
    doSomethingElse(); 
    doAnother(); 
} 

在這種情況下,doAnother()顯然屬於其他情況。

因此,當您的代碼頻繁更改或由多個開發人員修改代碼時,請明確指定else。它確實使事情更清晰並避免代碼中的錯誤/錯誤。

0

那麼...首先。如果你總是滿足if語句,你根本不需要if語句。關於有一個if語句實際上可以「失敗」,你不需要else語句,除非在你檢查的語句是錯誤的時候會發生一些特定的事情。

所以總之......你不必把它放在「僅僅是因爲」。

0

有兩個規則(這是(怎麼能說是在衝突的不同)),當涉及到源代碼的可讀性:

  • 試驗這是在一個真實路徑的條件下,處理其他情況下使用else(如果它需要處理的話)。
  • 測試正面條件,而不是否定。
1

如果只想在條件不成立的情況下運行某些代碼,則必須添加else或if。 下面一個爲例:

if (condition) { 
    a=5; 
} 
else { 
    a=8; 
} 

如果條件爲真 - > A = 5,如果沒有,一個= 8。

if (condition) { 
    a=5; 
} 
a=8; 

a = 8在所有情況下。

0

的一個優勢,我可以看到總是包括else語句來爲防範愚蠢的錯誤一樣

if (ptr != 0); 
    ptr = ptr->next; 

既然你不能有類似的else分枝的while - 或for -loops但這是一個不完整的方法。