【发布时间】:2024-01-17 20:43:01
【问题描述】:
这个程序打算无限循环......所以如果有人输入 5,它会要求另一个数字(5 或 9),如果他/她输入 9,它会要求 5 或 9...... 无限循环.
using namespace std;
int main()
{
cout << "Hello world! Enter a number" << endl;
int x;
cin >> x;
while (x == 5)
{
std::cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');
cout << "Try again, you got 5" << endl;
cin >> x;
}
while (x == 9)
{
cout << "You got 9, try again mate" << endl;
std::cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');
cin >> x;
}
return 0;
}
但我不明白当我切换数字时(如“5”到“9”再回到“5”),程序就停止了。
我认为是因为在Loop #1和Loop #2执行完后,程序永远不会返回其中一个,而是直接继续“返回0”,但我不知道如何让程序返回两个循环。
PS:我尝试切换到 do-while 循环并将“cin”语句从括号中取出,但它们并没有解决问题。
【问题讨论】:
-
我对 C++ 不是很熟悉,但我认为循环应该类似于
while(has number){ if(num = 5){ do something } if(num = 9){ do something } }。 -
"我想要一个无限循环" 不写无限循环 "怎么了?"嗯...
-
@LightnessRacesinOrbit 你一定有点慢......这正是我问这个问题的原因。谢天谢地,它已得到答复
-
@OpenTheCSV:是的,我很慢,我从不帮助任何人。
-
@OpenTheCSV:Stack Overflow 不仅仅是“帮助”。这是一个针对各个时代的问答存储库,因此,您应该(不,必需)使您的问题对其他人有用。这个不满足这个要求。 Stack Overflow 不是您自己的私人免费帮助台。谢谢。
标签: c++ while-loop do-while