2011-02-27 42 views
1
NSArray *test = [NSArray arrayWithObjects:@"22", @"3", @"22", @"5", @"1", @"0", @"2", nil]; 

NSArray *test2 = [NSArray arrayWithObjects:@"21", @"2", @"20", @"5", @"1", @"9", @"2", nil]; 

for(int i = 0; i < 7; i++) { 

    if ([test objectAtIndex:i] == [test2 objectAtIndex:i]); { 

testVariable = testVariable + 1; 
    } 

}  

NSLog(@"%i", testVariable);  

我想上面的代碼,以測試變量的比較,但它返回時7,它應該返回3.我需要以某種方式檢索和每個數組對象存儲在本地變量和比較thos對彼此?或者我可以像上面所做的那樣直接做更直接的事情。 數組非常有趣。 :)For循環做的變量重複檢查我

UPDATE:

得到它與NSInteger的工作.. :) 想我是比較的對象,而不是之前的實際整數..

+0

你的if語句後檢查分號。 也許這個也造成了一些麻煩。 – zen 2012-10-24 11:23:09

回答

1

簡單的答案是不使用不同的變量。改爲使用集合或數組。那麼你可以有:

if (taken[a] == 2 && hidden[a] == 2) { 
    ... 
} 

想到使用數組,每當你發現自己把數字後綴放在相同類型和前綴的變量上。

+0

感謝您的回覆。我不習慣陣列,現在有些困難瞭解它們。您能否快速演示在您寫入的行之前需要的步驟,以便能夠在這種情況下使用數組?除了陣列方式之外,沒有辦法做到這一點嗎? – ArthDent 2011-02-27 18:01:10

+0

數組將是最有效的方法,下面是一個很好的教程:http://www.idleloop.com/tutorials/introC/introC-10.php – Tobias 2011-02-27 18:20:26

+0

@ArthDent:我不是Objective C程序員(我認爲這就是你使用的),並且我可以通過給你錯誤的建議而容易地引入更多的混淆。我會*強烈*建議你拿到一本關於Objective C的書。理解你正在使用的語言的基礎知識非常重要...並且通過Stack Overflow學習零碎不是一個好主意IMO。這對您遇到的特定主題非常有用,但不適合初始學習。 – 2011-02-27 18:29:36

2

您可以使用preprocesor

#define variable(name,number) {name##number} 

後來在循環

for (int a = 1; a <= 53; a++) {  
    if ((variable(taken,a) == 2) && (variable(hidden,a) == 2)) { 
     //Do something 
    } 
}