1

このwhileループを機能させようとしていますが、何らかの理由で、ユーザー入力が間違っていると自動的に「想定」します。

value文字列です (char にする必要がありますか?) A, B,C文字列です (char にする必要がありますか?)

void Course::set()
{
    cout << "blah blah blah" << endl;
    cout << "youre options are A, B, C" <<endl;
    cin >> value;

    while(Comp != "A" || Comp != "B" || Comp != "C") 
    {
        cout << "The character you enter is not correct, please enter one of the following: You're options are A, B, C" << endl;
        cin >> value;
    }
    cout << endl;
}
4

3 に答える 3

6

&&条件では、の代わりにを使用する必要があり||ます。現在、あなたの条件は常にCompです.3つの定数のうちの1つだけと等しくなる可能性がありますが、同時に3つすべてと等しいわけではありません.

于 2013-02-26T19:42:18.863 に答える
1

他の投稿されたソリューションの代替として、これをより読みやすいと考える人もいるかもしれません:

while(! (Comp == "A" || Comp == "B" || Comp == "C"))
{
    // do something
}

また、他の人が指摘したように、おそらく次のことを意図していました。

cin >> Comp;

(使用してCompいない状態ですvalueのでwhile。)

于 2013-02-26T20:57:47.527 に答える
0

あなたがそこでした間違いは、ブロックを構築している間、言語の日常の使用法を考えることでした。if他の人が答えたように、あなたは&&正しい論理のために使うべきです。

于 2013-02-26T19:51:42.417 に答える