为什么我的OR条件检查字符串匹配总是返回true

我在编写经典的“猜数字”程序。

我不明白为什么即使我在循环中输入了“Success”,while循环仍然没有停止,并且继续执行默认路径。

int xRan;void rdm(int to, int from){    srand(time(NULL));    xRan = rand()%to+from;}void iGuess(){    string b;    int tries = 1;    cout <<  "请想一个1到100之间的数字" << endl;    rdm(100, 1);    while(b != "Success" || b != "success"){        cout << "你的数字是高于还是低于 " << xRan << "?(尝试次数 #" << tries << ")" <<  endl;        cout << "如果我猜中了你的数字,请输入'Success' " << endl;        cout << "-->";        cin >> b;        if(b == "Lower" || b == "lower"){            rdm(xRan, 1);            tries++;        }else if(b == "Higher" || b == "higher"){            rdm(100, xRan);            tries++;        }else{        cout << "这不是一个有效的选择。" << endl;        }    }    cout << "我太棒了!我用了 " << tries << "次尝试就猜到了!" << endl;}

回答:

你永远不会退出你的for循环,因为你在检查它是否是“Success”“success”。这两个条件中只要有一个为真就会进入循环。所以无论你输入的是大写还是小写,其中一个条件总是为真。相反,你应该写成

while(b != "Success" && b != "success")

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注