为什么无论我输入什么,我的时循环一直触发

Why is my while loop triggering all the time no matter what I input?

本文关键字:循环 一直 我的 输入 什么 为什么      更新时间:2023-10-16

我是一个初学者,我正在尝试使用一段时间循环进行作业,以计算有多少张门票通过大门以及它的登录方式。我以为我正确地编码了它,但是后来我遇到了运行时错误,并尝试将每个错误单击1乘1乘正常工作,但我什至无法让我的时循环不仅触发用户放入的任何内容。帮助您将不胜感激,我完全迷路了,我知道这是非常初学者。

 #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;
}

您在循环条件下使用分配。这是初学者犯的一个常见错误。您需要使用比较操作员。

使用

while (answer == 'y')

而不是

while (answer = 'y')

使用分配始终将评估为" true",因为C/C 中的分配评估为分配的值,并且除了0以外的任何其他内容都被视为" True"。为了避免这个错误,一些开发人员养成了将持续不断的习惯。例如:

while ('y' == answer)

这样,如果您错误地使用分配运算符,则编译器将生成错误。同样的原理也适用于"如果"语句。