Переменная Obj-C: ++ увеличивается на два вместо одного - PullRequest
1 голос
/ 02 апреля 2010

Я пишу программу, которая задает пользователям вопросы «да / нет», чтобы помочь им решить, как голосовать на выборах. У меня есть переменная, представляющая номер вопроса под названием questionnumber. Каждый раз, когда я прохожу цикл прерывания переключения, я добавляю 1 в переменную вопросительного номера, чтобы отобразился следующий вопрос.

Это отлично работает для первых двух вопросов. Но затем он пропускает третий вопрос и переходит к четвертому. Когда у меня есть больше вопросов в списке, он пропускает все остальные вопросы. Где-то, по некоторым причинам, переменная questionnumber увеличивается, когда я этого не хочу.

Пожалуйста, посмотрите на код ниже и скажите, что я делаю неправильно.

Спасибо!

Eli

#import "MainView.h"
#import <Foundation/Foundation.h>  

@implementation MainView
@synthesize Question;
@synthesize mispar;

int conservative = 0;
int liberal = 0;
int questionnumber = 1;

- (IBAction)agreebutton:(id)sender { ++liberal; }
- (IBAction)disagreebutton:(id)sender { ++conservative; }

- (IBAction)nextbutton:(id)sender
{
  ++questionnumber;

  switch (questionnumber)
  {
      case 2: Question.text = @"Congress should ....";  break;
      case 3: Question.text = @"It is not fair ...";    break;
      case 4: Question.text = @"There are two ...";    break;
      case 5: Question.text = @"Top quality h...";     break;
      default:  break;
  }
}  

@end

Ответы [ 2 ]

1 голос
/ 02 апреля 2010

Это немного сложно прочитать, если вы можете скопировать его точно так, как оно есть в файле реализации, и использовать функцию примера кода для публикации фрагментов кода.

Чтобы ответить на предыдущий вопрос

number++;

Это просто добавляет 1 к значению.

number+=anotherNumber;

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

number = number + anotherNumber;

Что касается вашего кода, есть ли вероятность, что метод nextButton вызывается более одного раза?

0 голосов
/ 02 апреля 2010

делает ++ автоматически добавляет 1 к переменной или добавляет переменную + себя

, поэтому, если вопросный номер = 1, то делает ++ вопросник добавить вопросник + вопросник, если это так, он будет работать только 1-й раз и пропустит 3, поэтому, когда вопросник равен 2, вы добавляете вопросник + вопросник, который = 4

Я бы изменил на вопросник = вопросник + 1 или, если язык поддерживает это, вопросник + = 1

Где вы устанавливаете начальное значение приращения для ++? Я полагаю, что эта функция обычно используется с циклом for.

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