因此,我正在询问您是否要升级角色。如果您说是,它会再次询问您,直到您达到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);


我感觉好像缺少了很明显的东西!

最佳答案

while (yn != 'y' || yn != 'n')


应该

while (yn != 'y' && yn != 'n')


由于仅当输入不是'y'且不是'n'时才无效。

当您检查不是'n'并且尚未达到20级时,外循环也是如此,否则,只有输入'n'且您处于20级时,才能退出该循环。

10-05 21:14