c++ 检查if条件中的多个变量[duplicate]

lyfkaqu1  于 2022-12-24  发布在  其他
关注(0)|答案(3)|浏览(127)
    • 此问题在此处已有答案**:

How can I check whether multiple variables are equal to the same value?(3个答案)
2年前关闭。

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).";
iyr7buue

iyr7buue1#

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

虽然这是一个有效的C++,但它几乎肯定不是你想要的(更多信息请参见How does the Comma Operator work)。通常你会做你想要做的事情,比如:

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

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

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

这是可行的,因为你只关心最大值,如果4个中的最大值小于20,那么这意味着所有的值都小于20。

pw9qyyiw

pw9qyyiw2#

不要写if ( math , physics , chemistry , literature > 20 ),而应该写:
if ( math > 20 || physics > 20 || chemistry > 20 || literature > 20 )
如果你想检查是否有一个元素大于20
if ( math > 20 && physics > 20 && chemistry > 20 && literature > 20 )
如果你想检查所有的元素是否都大于20。

hgqdbh6s

hgqdbh6s3#

该语言允许使用以下代码:
第一个月
这是the comma operator的标准用法,但并没有给予预期的结果。
您应该将其重写为:
if (math > 20 || physics > 20 || chemistry > 20 || literature > 20) {

相关问题