无法将其返回循环。 C ++

时间:2018-12-18 00:26:24

标签: c++ c++11

如果他们从选择中输入任何内容,我正在尝试使其重新循环。每当我输入4时,它就结束了。如果我选择正确的一个,它也会结束。无论如何,我可以要求用户输入正确的密码吗?

void towsoncourse ()
{
    cout << "Enter Course: 1 is COSC,2 is ENGL,3 is MATH" << endl;
    int course;
    bool finish;

    bool finishcourse = true;
    cin >> course;

    while (finishcourse != true)
    {
        cout << "Enter correct number for course" << endl;
        if (course == 1 || course == 2 | course == 3)
        {
            finish = true;
        }
        else
        {
            cout<< "Error: Enter number corresponding to course." << endl;
        }
     }

     switch (course)
     {
        case 1:
            cout << "COSC" << endl;
            break;
        case 2:
            cout << "ENGL" << endl;
            break;
        case 3:
            cout << "MATH" << endl;
            break;
        default:
            cout << "Error: Enter number corresponding to course" << endl;
    }
}

int main ()
{
  towsoncourse ();

  return 0;
}

2 个答案:

答案 0 :(得分:0)

这不是一个完整的答案,而是一个指明方向的指南。

您要继续读取输入,直到它是3个可能的值之一。因此,读取和测试输入的一个好地方是在一个循环中,仅在满足测试条件时退出。

while循环在每次执行之前测试继续条件。 do循环在每次执行后测试继续条件。在这种情况下,必须至少执行一次。

答案 1 :(得分:0)

代码存在一些问题。

1)Order Allow,Deny <FilesMatch "\.(html|css|js)$"> Order Deny,Allow Allow From All </FilesMatch> 条件错误。应该是while (finishcourse != true)

2)while (finishcourse == true)分配错误。应该是finish = true;

3)finishcourse = false;应该放在循环内。因为如果将其放置在外面,则会在输入错误的情况下导致无限循环。

因此,为了确保可读性,我重写了代码。我假设在输入错误的情况下返回到循环,而在输入正确的情况下会终止。

cin >> course;