我想看看是不是寫if (row > -1 && row < _rows)
我可以將它縮短到if (-1 < row < _rows)
。我用下面的測試來找出(它沒有返回任何編譯錯誤)。在AND語句或OR語句的if語句中有多個運算符
int x = 5;
BOOL test1 = NO;
BOOL test2 = NO;
BOOL test3 = NO;
if (x < 6 && x > 4) {
test1 = YES;
}
if (4 < x < 6) {
test2 = YES;
}
if (5 < x < 7) {
test3 = YES;
}
所有三個測試上前YES
,其中包括一個第3,如果我的語法是正確的,應該已經NO
。看起來這不是有效的語法,但我的問題是,編譯器在語法(5 < 5 < 7)
返回true時實際上在做什麼?
這會被定期詢問,但很難找到副本中的副本。 – dasblinkenlight
要清楚,第二個和第三個if語句的語法並不真正有效。您必須正確使用'&&'像第一個'if'語句中那樣以正確的理由得到預期的結果。 – rmaddy