为什么这个y/n循环不起作用?

Por*_*ker 0 c++ logic boolean-logic loops

所以我看看你是否想升级你的角色.如果你说是,它会再次问你,直到你达到20级(D&D级别上限)或直到你说不.

我键入y然后按Enter键,它说错了,点击n然后输入,同样的事情.这是我的代码:

char yn;
do {
    cin >> yn;
    while (yn != 'y' || yn != 'n') {
        cout << "Only y or n are valid options, try again: ";
        cin >> yn;
    }
    if (yn == 'y')
        f.levelUp();
    cout << endl;
} while(yn != 'n' || f.getLevel() != 20);
Run Code Online (Sandbox Code Playgroud)

我觉得我错过了一些非常明显的东西!

Pat*_*k87 7

做你的|| 一个&&.想一想; yn不能同时为'y'和'n',因此条件始终为真.