所以我看看你是否想升级你的角色。如果你说是,它会再次问你,直到你达到20级(D& D级别上限)或直到你说不。
我键入y然后按回车键,它说错了,点击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);
我觉得我错过了一些非常明显的东西!
答案 0 :(得分:7)
制作你的||和&amp;&amp;想一想; yn不能同时为'y'和'n',因此条件始终为真。
答案 1 :(得分:1)
while (yn != 'y' || yn != 'n')
应该是
while (yn != 'y' && yn != 'n')
因为如果输入不是'y'
AND ,它只是无效,它不是'n'
。
当您检查不是'n'
而不是20级时,外部循环也是如此,否则只有在输入'n'
并且您处于20级时才能退出该循环。