#include<iostream>
using namespace std;
int main()
{ int a=5,b=4,c=3,d=2;
if(a>b>c) cout<<d<<endl;
else if((c-1>=d)==1) cout<<d+1<<endl;
else cout<<d+2<<endl;
return 0; } 执行后输出结果是( )。
如果想要表达a大于b并且b大于c的话,应该使用if(a>b && b>c)这种逻辑进行表达。
如果使用a>b>c这种表达式的话,编译器会根据从左到右检查的方法,执行这条语句。
a>b吗?如果a>b,就是1,否则就是0。
如果a>b为真,那么表达式a>b就是1了。接下来判断1>c吗?如果1>c,返回值就是1;否则,返回值就是0.
反之,那么表达式a>b就是0了。接下来判断0>c吗?如果0>c,返回值就是1;否则,返回值就是0.
这样虽然在语法上,编译器还能解释得通,但是从逻辑上来讲,已经背离了判断表达式是否a>b并且b>c的初衷了。
希望能够对题主有所帮助。
您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632