循环无法识别输入

时间:2017-05-12 18:05:25

标签: c++

我不知道该怎么做。 所以我有这个简单的while循环意味着允许用户重新输入一个数字,如果他们意外地给出了错误的输入。 问题是,如果您输入" 2"它又回来了。我不能,因为我的生活想出来了。

void Player::playerPick()
{
    int selection = 0;
    while (selection != (1 || 2))
    {
        cout << "Player 1 or Player 2 (Type [1] or [2])";
        cin >> selection;
    }
}

1 个答案:

答案 0 :(得分:4)

您写道:

while (selection != (1 || 2))

这是&#34;而选择不是一两个&#34;。

实际正确的英语是&#34;而选择既不是一个也不是两个&#34;,而且在C ++中也是如此:

while (!(selection == 1 || selection == 2))

或者,更简单,&#34;虽然选择不是一个,选择不是两个&#34;:

while (selection != 1 && selection != 2)

表达式1 || 2评估为true,因此您编写了while (selection != true)任何非零值selection就是这种情况