Цель C, если заявление не работает - PullRequest
0 голосов
/ 04 июля 2011

Я пытался выяснить проблему с этим в течение дня, и, похоже, не могу найти решение.

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];
}

}

Всякий раз, когда я нажимаю кнопку «перейти», она всегда предполагает, что значение person является последним утверждением if.

Есть идеи?

Ответы [ 3 ]

4 голосов
/ 04 июля 2011

используйте == для сравнения

if(person == 1)
{
//...
}
2 голосов
/ 04 июля 2011

Я бы написал это как комментарий, но это не удобно, поэтому он здесь

Поскольку оба ответа предполагают, вы должны использовать оператор равенства, пожалуйста, подумайте:

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) {
//..
}
//..
2 голосов
/ 04 июля 2011
person = 1

Он присваивает 1 человеку, а не проверяет, равен ли он одному. Поскольку 1 назначается человеку, это условие всегда выполняется. Вам нужен оператор == вместо = в if условиях.

if (person == 1) {

} else if (person == 2) {

} // similar 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...