2012-06-04 59 views
0

這是我的程序中發生的一些有線事情,希望你能幫助我 我嘗試比較if條件中的數組元素,這在比較值爲零時有效。使用預定義值比較數組元素時出錯?

if((y[5]<0) && (y[4]>0)){ 
//do something 
} 

但是,當我嘗試與20比較值,它失敗,如果條件不工作!由於我的數組包含浮動數字,我也試過,但它也失敗了,如果條件不起作用!

if((y[5]<20.00f) && (y[4]>20.00f)){ 
     //do something 
     } 

任何想法爲什麼會發生這種情況?它讓我瘋狂! :(:(:(

+0

您可以張貼y的內容順便說一句:你應該是因爲你不使用的NSArray – Francesco

+0

你可以嘗試打印的值刪除NSArray的標籤NSLog(@「%f」,y [5]); – Lefteris

+0

數組包含數組,所以我們可以知道它是正確的嗎?NSLog是你所需要的,因爲你使用的是浮點數。來自ipod accelerometer的數據,這是一個動態數組,因此我需要比較元素並增加計數器(如果正確),我創建了一個全局數組並使用float * y = [[Shared sharedInstance] input]對其進行了評估。這種情況適用於零比較,但不適用於任何數字,如20?爲什麼是t帽子? – sam

回答

2

你應該嘗試:

if(([[y objectAtIndex:5] intValue]<20) && ([[y objectAtIndex:5] intValue]>20)) 
    { 
    //do something 
    } 
+0

嗨兄弟,我沒有問題與零比較,數組包含加速度計的數據ipod,這是一個動態數組,因此我需要比較元素並增加一個計數器,如果正確,我創建了一個全局數組並使用float * y = [[Shared sharedInstance] input]對其進行了評估;這種情況適用於零比較,但不適用於任何數字,如20?這是爲什麼? – sam

+0

嗨,NSArray和NSMutableArray包含對象。我不知道爲什麼它與零比較一起工作,但如果您需要與數組對象進行比較,則需要獲取該對象並將其轉換爲int/float/double以與任何數字進行比較。 –