如果我们使用 if(a>b>c) # a 大于所有三个会导致 false

  • 本文关键字:false 三个 我们 if 如果 大于 c
  • 更新时间 :
  • 英文 :


我用 C 语言执行了以下代码;

#include<stdio.h>
#include<conio.h>
void main()
{
        int a=15,b=10,c=5;
        if(a>b>c)
           printf("True");
        else
           printf("False");
        getch();
}

输出:假请解释一下为什么?

C 或

C++ 中没有三元(或"链式")>运算符。因此,您的表达式的计算结果为((a>b)>c)因为计算是从左到右完成的。

在 C 中,真表达式的计算结果为 1,而假表达式的计算结果为 0。C++我的记忆是,它们的计算结果是布尔truefalse,但无论如何,这些类型都转换为10,所以情况大致相同。

使用该原则,a>b将评估是否1是否a>b,否则0。因此如果a>b,则整个表达式的计算结果为 1>c,否则计算0>c。由于c不止一个,1>c0>c都不是真的,输出总是0,或者假,程序会打印False

要实现我强烈怀疑您真正想要的东西,请使用 ((a>b) && (b>c)) .

相关内容

最新更新