if (row > -1 && row < _rows)
書く代わりに、に短縮できるかどうかを確認したかったのif (-1 < row < _rows)
です。以下のテストを使用して確認しました (コンパイル エラーは返されませんでした)。
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番目のテストを含め、3つのテストすべてが発生しましたNO
。(5 < 5 < 7)
これは有効な構文ではないように見えますが、私の質問は、構文が true を返すところでコンパイラは実際に何をしているのかということです。