在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。