如何在if语句中让函数返回程序中的特定点?

时间:2019-01-27 02:31:34

标签: c++ c++11

我希望我的功能能够正常运行,以便如果某人输入的分数超过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 :(得分:1)

您可以使用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语句和其他一些逻辑标记来实现。

答案 1 :(得分:1)

从内部调用函数“ gradeTaker()”,而不是“ return”