在if条件下检查多个验证

float math , physics ,literature , chemistry ;

cout << "Enter math score : ";
cin >> math ;
cout << "Enter physics score : ";
cin >> physics ;
cout << "Enter chemistry score : ";
cin >> chemistry ;
cout << "Enter literature score : ";
cin >> literature ;

我想检查我的变量,但它没有用....

//Check inputs
if ( math , physics , chemistry , literature > 20 ){
    cout << "Error ... The score should be in range (0,20).";

回答

if ( math , physics , chemistry , literature > 20 ){

虽然这是有效的 C++,但它几乎绝对不是你想要的(更多信息请参见逗号运算符如何工作)。通常你会做你正在寻找的东西:

if ( math > 20 || physics > 20 || chemistry > 20 || literature > 20 ){

但是,您可以通过调用来缩短它std::max

if (std::max({math, physics, chemistry, literature}) > 20) {

这会起作用,因为您只真正关心这里的最大价值。如果四个中的最大值小于20,则表示所有都小于20。


以上是在if条件下检查多个验证的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>