C++ Can';我不能让它回到回路。C++;
如果他们输入了选项中的任何内容,我试图让它返回到循环中。每次我输入4,它就结束了。如果我选对了,它也会结束。是否有我可以让它要求用户输入正确的一个C++ Can';我不能让它回到回路。C++;,c++,c++11,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 &g
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;
}
void towsoncourse()
{
cout课程;
while(finishcourse!=真)
{
cout不是一个完整的答案,而是一个指引方向的指南
您希望一直读取输入,直到它是3个可能值之一。因此,读取和测试输入的好地方应该在循环中,只有在满足测试条件时才退出
while loops在每次执行之前测试continue条件。在每次执行之后执行loops测试continue条件。在您的情况下,必须至少执行一次。代码存在一些问题
1) while(finishcourse!=true)
条件错误。它应该是while(finishcourse==true)
2) finish=true;
作业错误。它应该是finishcourse=false;
3) cin>>当然;
应该在循环内部进行。因为如果将其放置在外部,如果输入不正确,将导致无限循环
因此,为了确保可读性,我重写了代码。我假设如果输入不正确,它会返回循环,如果输入正确,它会终止
#include <iostream>
using namespace std;
void towsoncourse ()
{
bool finishcourse = true;
while (finishcourse == true)
{
int course;
cout << "Enter Course: 1 is COSC,2 is ENGL,3 is MATH" << endl;
cin >> course;
switch (course)
{
case 1:
cout << "COSC" << endl;
finishcourse = false;
break;
case 2:
cout << "ENGL" << endl;
finishcourse = false;
break;
case 3:
cout << "MATH" << endl;
finishcourse = false;
break;
default:
cout << "Error: Enter number corresponding to course." << endl;
}
}
}
int main ()
{
towsoncourse ();
return 0;
}
#包括
使用名称空间std;
无效towsoncourse()
{
bool finishcourse=true;
while(finishcourse==true)
{
国际课程;
cout课程;
转换(课程)
{
案例1:
拼写错误:if(course==1 | | course==2 | course==3)
可能应该是if(course==1 | | course==2 | | course==3)
或者你正在做一些非常微妙的事情,可能需要一些括号。因此,你将完成课程
初始化为正确的
,然后立即尝试做一些,而完成课程
不是正确的
。这对你来说有意义吗?这就像把你的晚餐放进烤箱,而不是只要烤箱里没有东西,就计划做某事。不计算。注意:一个像样的编译器设置为像样的警告级别会告诉你,bool finish;
已设置但从未使用过。永远不要忽略编译器警告。它们存在是有原因的。找出它的含义并解决它。你几乎总是需要搜索更少的bugs。@user4581301同意,我的错误!谢谢Kunal,这是我第一年做编码,需要另一双眼睛来了解我做错了什么。谢谢你的提示。@KumaHurricane,如果你真的认为这回答了你的问题,请将此解决方案标记为已批准。