Цель-C: как вернуться к началу приложения после завершения оператора switch - PullRequest
1 голос
/ 17 марта 2011

Например,

В вашей программе у вас есть:

NSLog(@"Where are you going?");
NSLog(@" 1 = Location1, 2 = Location2");

printf("Make a selection:");

scanf("%i, &value);

switch (value) {
    case 1:
        NSLog(@"You are going to Location 1.")
        break;

    case 2:
        NSLog(@"You are going to Location 2.");
        break;

    default:
        NSLog(@"That is not a valid location");
        break;
}

Обычно после ввода целого числа ваша программа вернет 0 и приложение завершится.Как вы можете сделать так, чтобы он «зацикливался» на исходном printf, чтобы сделать новый выбор?Или, что еще лучше, новый printf IE 'printf ("Куда еще вы хотели бы пойти?:");'?

1 Ответ

2 голосов
/ 17 марта 2011

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

void takeMeToPlaces() {

    NSLog(@"Where are you going?");
    NSLog(@"0 = Exit, 1 = Location1, 2 = Location2");

    printf("Make a selection:");

    scanf("%i, &value);

    switch (value) {
        case 0:
            NSLog(@"You don't like to go anywhere");
            break;

        case 1:
            NSLog(@"You are going to Location 1.");
            takeMeToPlaces();
            break;

        case 2:
            NSLog(@"You are going to Location 2.");
            takeMeToPlaces();
            break;

        default:
            NSLog(@"That is not a valid location");
            takeMeToPlaces();
            break;
    }
}
...