挺直的。我不明白为什么它在不接受y字符后不会退出循环。
ive针对y char和n char尝试了==和!=的不同变体
vector<int> v;
char ans;
do
{
cout << "Enter scores, enter number outside of 0-100 to stop:\n";
get_scores(v);
print_stats(v);
cout << "Do you want to try another set of scores? Y/N: \n";
cin >> ans;
} while (ans != ('n' || 'N'));
键入任何字符后,循环将继续要求更多输入。 注意:获取分数和打印统计信息功能可以按预期工作。
答案 0 :(得分:4)
您在while条件下的比较不正确,您可能打算这样做
while (ans != 'n' && ans != 'N');
('n' || 'N')
将被强制为true(1),因此您将检查值1的字符而不是'n'
/ 'N'
答案 1 :(得分:2)
} while (ans != ('n' || 'N'));
在这里,您将char与||的布尔结果进行比较其他2个字符的操作。 哪个总是正确。 所以您的while声明很有效
} while (ans != true);
要解决此问题,您需要将ans与n和N进行比较,如果其中一个变为真,则退出,例如:
} while ((ans != 'n') && (ans != 'N'));
答案 2 :(得分:0)
while (ans != ('n' || 'N'))
与编写while (ans != (true))
相同。您可能想要while ((ans != 'n') && (ans != 'N'))
。