2011-07-04 86 views
0

我一直在試圖找出這個問題,現在一天,似乎無法找到修復。客觀C如果陳述不起作用

int person; 



-(IBAction)personOne:(id)sender{ 
[twoPerson stopAnimating]; 
[fourPerson stopAnimating]; 
[threePerson stopAnimating]; 
[onePerson startAnimating]; 

person = 1; 

} 

-(IBAction)personTwo:(id)sender{ 
[threePerson stopAnimating]; 
[fourPerson stopAnimating]; 
[onePerson startAnimating]; 
[twoPerson startAnimating]; 

person = 2; 
} 
-(IBAction)personThree:(id)sender{ 
[fourPerson stopAnimating]; 
[onePerson startAnimating]; 
[twoPerson startAnimating]; 
[threePerson startAnimating]; 

person = 3; 
} 
-(IBAction)personFour:(id)sender{ 
[onePerson startAnimating]; 
[twoPerson startAnimating]; 
[threePerson startAnimating]; 
[fourPerson startAnimating]; 

person = 4; 
} 

我想要做的是,如果這個按鈕被點擊,那麼Person等於一個整數值。

我根本沒有看到這個代碼的問題。

然後我有另一個使用if語句的按鈕。

-(IBAction)go:(id)sender{ 
ammountDueFloat = ([ammountDue.text floatValue]); 
tipPercent1; 
findAmmount = tipPercent1 * ammountDueFloat; 
NSString *showAmmountText = [[NSString alloc]initWithFormat:@"$%.2f", findAmmount]; 
showammount.text = showAmmountText; 



if (person = 1) { 
    showPerPerson = findAmmount/1; 
    perPersonLabel.text = [[NSString alloc]initWithFormat:@"$%.2f",  showPerPerson]; 
} 
if (person = 2) { 
    showPerPerson = findAmmount/2; 
    perPersonLabel.text = [[NSString alloc]initWithFormat:@"$%.2f", showPerPerson]; 
} 
if (person = 3) { 
    showPerPerson = findAmmount/3; 
    perPersonLabel.text = [[NSString alloc]initWithFormat:@"$%.2f", showPerPerson]; 
} 
if (person = 4) { 
    showPerPerson = findAmmount/4; 
    perPersonLabel.text = [[NSString alloc]initWithFormat:@"$%.2f", showPerPerson]; 
} 
else { 
    showPerPerson = findAmmount/1; 
    perPersonLabel.text = [[NSString alloc]initWithFormat:@"$%.2f", showPerPerson]; 
} 

} 

每當我點擊按鈕'去'它總是假設人的價值是最後一個if語句。

任何想法?

+0

當您使用「Xcode4給你一個警告= '在if()條件下的運算符。你應該注意警告。 – Shreesh

+0

您應該使用等號運算符(==),不要使用賦值運算符(=)進行比較。 – EmptyStack

+0

去C並參加一些課......你正在分配你想要比較的價值! – Aditya

回答

4

使用==來

if(person == 1) 
{ 
//... 
} 
2
person = 1 

它指定1比較的人,而不是檢查的人是否等於一。當1被分配給人時,這種情況總是如此。您需要==運營商而不是=if條件。

if (person == 1) { 

} else if (person == 2) { 

} // similar 
2

我會把它寫成評論,但它的不方便,所以它在這裏

由於這兩個答案的建議,你應該使用等號運算符,請考慮:

if ((person < 1) || (person > 4) { 
    person = 1; 
} 
showPerPerson = findAmmount/person; 
perPersonLabel.text = [[NSString alloc]initWithFormat:@"$%.2f",  showPerPerson]; 

代替整個如果情況。

如果你使用if情況下,你應該還有每一個案件進行添加,否則最後一部分將運行每次人= 4:

if (person == 1) { 
//.. 
} 
else if (person == 2) { 
//.. 
} 
else if (person == 3) { 
//.. 
} 
//..