因此,我正在询问您是否要升级角色。如果您说是,它会再次询问您,直到您达到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级时,才能退出该循环。