Нуб в Xcode и Objective C, пытаясь понять глобальные переменные, и оператор switch - PullRequest
1 голос
/ 19 сентября 2010

Я новичок в этом, поэтому, пожалуйста, извините мои предположительно простые вопросы.Надеюсь, вы сможете помочь мне довольно легко!Я делаю приложение, которое использует 4 переменных для расчета количества воды, рекомендуемой для пользователя.Проблема с этим оператором switch заключается в том, что независимо от того, какое значение я установил age, оно всегда выполняется в последнем случае.Почему это так?

Кроме того, поскольку все мои переменные получены из разных методов (IBAction), их нужно определять как глобальные переменные?И как мне поступить так?

ПОЖАЛУЙСТА, ПОМОГИТЕ!

Большое спасибо:)

-(IBAction) updatePrefs:(id) sender
{

    switch (age){
     case 1:
         RWI = 1;
         Output.text = [NSString stringWithFormat:@"You should drink 1 litre a day"];
     case 2: 
         Output.text = [NSString stringWithFormat:@"You should drink 1.5 litres a day"];
     case 3:
         RWI = (weightkg * weightpounds * activity);
         Output.text = [NSString stringWithFormat:@"You should drink 2 litres a day"];
         break;
     default:   
         break;
}

Ответы [ 2 ]

2 голосов
/ 19 сентября 2010

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

Ваш код должен выглядеть следующим образом:

switch (age){

    case 1: RWI = 1; 
        Output.text = [NSString stringWithFormat:@"You should drink 1 litre a day"]; 
        break;
    case 2: 
        Output.text = [NSString stringWithFormat:@"You should drink 1.5 litres a day"]; 
        break;
    case 3: RWI = (weightkg * weightpounds * activity); 
        Output.text = [NSString stringWithFormat:@"You should drink 2 litres a day"]; 
        break; 
    default:
    break; 
}
2 голосов
/ 19 сентября 2010

Поставить

break;

В конце каждого блока операторов case.Без перерыва;ваш путь выполнения кода просто проходит через каждый набор операторов case, и в итоге вы получаете var, которому назначается последнее значение в операторе switch.

...