为什么我的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

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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