2017-03-01 109 views
1
i = 0; 
if(0 <= i <= 0) 

這將返回false。零大於或等於零評估爲假

我完全不理解這一點。 Watch window我也試過在單獨測試它們時將語句讀爲(0 <= i && i <= 0)0 <= i返回false,而i <= 0返回true。他們都應該是真實的。我不確定這是否是一個精確的事情,但我不這麼認爲,因爲我很難編碼這些值。請幫助我理解這個基本問題。

如果它有幫助我試圖通過獲取交點來評估一個點是否在一條線上,然後檢查它是否在x和y起點和終點之間。當我試圖檢查x或y是否在軸上時,這會成爲一個問題,然後遇到檢查0是否在0和0之間的問題。哪一個是這樣會落在行上。

+2

因爲你必須寫'0 <= i && i <= 0'。否則,它就像'(0 <= i)<= 0「,即首先評估'(0 <= i)'並給出true。 true與零不同,所以'true <= 0'爲false – Garf365

+0

Thank's Garf365。我認爲就是這樣。那是我預期的那麼簡單得多。現在可能應該去睡覺了。 –

+1

@ Garf365確切地說,關係運算符返回類型'int',值'0'或'1'。不「真」。 – user694733

回答

7

關係運算符的鏈接是不可能的(根據期望生成有效的結果),您需要編寫單獨的指令來驗證每個條件。

由於absence of explicit parenthesis and LTR association,像

if(0 <= i <= 0) 

一個語句作爲

if((0 <= i) <= 0) 

其歸結爲

if (1 <= 0) 

其產生的0,(FALSE)進行評價。

這就是說,要求有關

我也試圖使宣讀的聲明(0 <= i && i <= 0)當我分別測試他們0 <= i回報,同時i <= 0返回true假。他們都應該是真實的

是不正確的,他們同時爲真See for yourself