我是初学者,我正在尝试使用while循环进行分配,以便计算通过大门的票数以及日志是多少彩票。我以为我编码正确,但后来我遇到了运行时错误并尝试将每个错误单独输出然后逐个1让它工作但我甚至无法触发我的while循环以触发用户输入的任何内容任何帮助都会受到赞赏,我完全迷失了,我知道这是初学者。
#include <iostream>
using namespace std;
int main()
{
char answer;
cout << "start counting tickets? (y/n)" << endl;
cin >> answer;
while (answer = 'y')
{
cout << "ok" << endl;
cin >> answer;
}
return 0;
}
答案 0 :(得分:2)
您正在使用while循环条件中的赋值。这是初学者常犯的错误。您需要使用比较运算符。
使用
while (answer == 'y')
而不是
while (answer = 'y')
使用赋值将始终求值为“true”,因为C / C ++中的赋值计算为赋值,除0之外的任何值都被视为“true”。为了避免这种错误,一些开发人员养成了将常量放在左边的习惯。例如:
while ('y' == answer)
这样,如果您错误地使用赋值运算符,编译器将生成错误。同样的原则也适用于“if”陈述。