簡體   English   中英

將if / else放在另一個其他地方是不好的做法?

[英]Is it bad practice to place an if/else inside of another else?

if() {

}else {
    if (IsAlternateRow=='true')
        IsAlternateRow = 'false';
    else
        IsAlternateRow = 'true';
}

我可以將if和else語句放在另一個else語句中嗎?

注意:在發布此答案之后,問題被重新標記為JavaScript(它最初是關於Java的,所以這個答案是關於Java的)。

在一般情況下,這是很好的地方了ifelse內部else條款。

但是,您的代碼存在一些問題。 IsAlternateRow=='true'在語法上無效。

  • 如果是字符串比較,則應使用雙引號和.equals() ;
  • 如果它是一個布爾比較,你最好簡單地做IsAlternateRow = !IsAlternateRow而不是整個嵌套if

嘗試

IsAlternateRow = !IsAlternateRow;

(更新以顯示代碼中的內容)

var IsAlternateRow = false;

if(/* -- insert equation here -- */) 
{
 // do something
} 
 else 
{
    IsAlternateRow = !IsAlternateRow;
}

return(IsAlternateRow.equals('true'))? 'false':'true'

是的,將if放入else是完全可以接受的做法,但在大多數情況下, else if更清晰,更清潔else if使用else if 例如

if (test) {
   // Do something
} else if (otherTest) {
   // Do something else
} else {
   // Do a third thing
}

事實上,這是簡單的

if (test) {
   // Do something
} else {
     if (otherTest) {
         // Do something else
     } else {
         // Do a third thing
     }
}

在大多數情況下,兩者應編譯成幾乎相同的程序。

您的代碼示例不是很清楚,無法正確編譯,更清晰的示例代碼可以幫助我們幫助您。

總的來說,我要說回答這樣的問題,你應該問問自己,

這容易閱讀嗎?

淺嵌套的if/else語句並不可怕,但是一旦你開始嵌套廣告惡心,你應該重構。

這很好,但有更簡單的方法來做你正在做的事情:

IsAlternateRow = !IsAlternateRow

是的你可以。 如果你想多次評估同一個對象/變量,你可以使用一個switch語句,但在很多情況下交錯if if語句也能完成這項工作。

要回答你的問題,是的,你可以無限地嵌套if / else語句。 您提供的代碼將編譯沒有問題。 雖然假設您正在談論Java,但我想,除非是偽代碼,否則它無法提供所需的結果。

正確的方法:

if() {

} else if (IsAlternateRow=='true') {
    IsAlternateRow = 'false';
}
 else
{
    IsAlternateRow = 'true';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM