2017-08-10 84 views
-2

我遇到了問題2 if。 第一個If是真的,因爲xb == 0,但接下來是錯誤的,因爲yb==1。在else if聲明中,兩個條件都滿足。C如果每次都跳過一個

xb = 0; 
yb = 1; 
xz = 0; 
yz = 0; 
if (xb == 0) { 
    if (yb == 0) { 
     ... 
    } 
} else if(xb == 0) { 
    if (yb == 1) { 
     ... 
    } 
} 

爲什麼else if兩個都是正確的?

+0

@IrgendSonRandom請仔細閱讀本:[提問],並提供[MCVE。並正確地格式化您的代碼。 –

+2

當我正確理解你的問題時:在else else語句中刪除你的else,然後第二部分將正確運行。否則,只有當第一個「if(xb == 0)」爲假時,纔會檢查'else if(xb == 0)'。 –

回答

0

僅當第一個if測試由於else關鍵字而爲false時纔會執行第三個if

更改IFS這樣:

xb = 0; 
yb = 1; 
xz = 0; 
yz = 0; 
if (xb == 0) { 
    if (yb == 0) { 
     // both xb and yb and 0 ... 
    } else 
    if (yb == 1) { 
     // xb is 0 and yb is 1 ... 
    } 
} else { 
    if (yb == 0) { 
     // xb is not 0 and yb is 0 ... 
    } else 
    if (yb == 1) { 
     // xb is not 0 and yb is 1 ... 
    } 
} 
相關問題