Как заставить мою функцию возвращаться к определенной точке моей программы в операторе if? - PullRequest
0 голосов
/ 27 января 2019

Я хочу, чтобы моя функция работала так, чтобы, если кто-то вводил больше оценок, чем разрешенные 20, он возвращался в другую точку, будь то в функции или вне ее, чтобы у пользователя была возможность повторить попытку.Что мне нужно изменить, я знаю, что return не может быть ответом, так как он просто существует в функции и переходит на следующую строку после вызова функции.Это для домашней работы, и я честно не уверен, что это даже необходимо, я просто хочу, чтобы он был чистым и обрабатывал пользовательские ошибки.

void gradeTaker()
{
    cout << "You may input up to 20 grades. \n";
    cout << "First enter the number of grades you have: \n";
    cin >> gradeCounted;
    if (gradeCounted > arraySize)
    {
        cout << "You entered a number of grades greater than 20, try again \n";
        return;
    }
}

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

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Вызовите функцию «gradeTaker ()» изнутри себя вместо «возврата»

0 голосов
/ 27 января 2019

Вы можете использовать цикл while для ввода ввода с условием:

    void gradeTaker()
{
cout << "You may input up to 20 grades. \n";
cout << "First enter the number of grades you have: \n";
cin >> gradeCounted;
while (gradeCounted > arraySize)
{
cout << "You entered a number of grades greater than 20, try again \n";
cin >> gradeCounted;
}
// do whatever with gradeCount
}

Также выполните цикл while, пометьте его оператором goto и некоторыми другими логиками для достижения.

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