确保用户只输入两个单词中的一个

时间:2015-01-09 11:42:00

标签: c++

首先,我是c ++的初学者。我想允许用户输入单词“red”或“blue”,如果他们输入任何其他单词/字符/数字,我想要出现错误信息或类似的东西,以便他们可以再次输入单词。 / p>

这是我正在努力的一点:

cin >> seedColor;
while (seedColor != "red" || "blue") {
    cout << "This is not a valid input. Please try again." << endl;
    cin >> seedColor;
}

当我尝试说(seedColor!=“red)时,一切正常,但当我使用||运算符时,程序仍然运行,但每个条目都变为无效,包括红色。

2 个答案:

答案 0 :(得分:5)

因为它不是布尔表达式的工作方式。你需要写上 while(!(seedColor == "blue" || seedColor == "red"))
对于你想要的行为。

答案 1 :(得分:2)

你的问题的答案并不复杂。有很多方法可以做你想做的事。

如果您想让您的方法有效,请在以下位置更改while()内容:

    while (seedColor != "blue" && seedColor!="red"){
             //your sutuff
    }

换句话说,如果您使用&&运算符,首先需要||而不是!=。如果您使用的是==运算符而不是!=,那么您可以在问题中使用||

其次,您没有使用精细的||运算符。您必须拥有logical_expression || logical_expression