C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了条件中的多个表达式(C/C++)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在执行控制块之前确保所有3个条件都得到相同的答案:

#include <iostream>
#include <cstdlib>

int main(){

    ///BUT THIS DOES NOT WORK!
    if ( (2 + 2) == (1 + 3) == (4 + 0) ){
        std::cout << "not executed" << std::endl;
    }

    return EXIT_succesS;
}@H_419_12@ 
 

假设这些数字实际上是变量.这就是我要做的事情:

#include <iostream>
#include <cstdlib>

int main(){

    int n1 = 2;
    int n2 = 2;
    int n3 = 1;
    int n4 = 3;
    int n5 = 4;
    int n6 = 0;

    int a = n1 + n2;

    ///this works
    if ( (n3 + n4) == a && (n5 + n6) == a){
        std::cout << "executed!" << std::endl;
    }

    return EXIT_succesS;
}@H_419_12@ 
 

问题:为什么我的第一个例子不起作用?

我可以像这样为多个变量分配相同的值:

#include <iostream>
#include <cstdlib>

int main(){

    int a,b,c,d;
    a=b=c=d=9;

    ///prints: 9999
    std::cout <<a<<b<<c<<d<<'\n';

    return EXIT_succesS;
}@H_419_12@ 
 

希望有人能解释为什么这种评估方法不起作用.
在编写if语句时,最近引起了我的注意,该语句确定nxn数组是否是魔方.

解决方法

(2 2)==(1 3)==(4 0)

首先,(2 2)==(1 3)计算结果为真,因为它确实认为4 == 4.

然后,你要比较真==(4 0).在这种情况下,布尔值将转换为整数:

true -> 1
false -> 0@H_419_12@ 
 

因此你比较1 == 4,结果是假的.

大佬总结

以上是大佬教程为你收集整理的条件中的多个表达式(C/C++)全部内容,希望文章能够帮你解决条件中的多个表达式(C/C++)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。