代码之家  ›  专栏  ›  技术社区  ›  shafik

条件语句在不同语言中的行为不同[重复]

  •  -1
  • shafik  · 技术社区  · 7 年前

    C级

    int a=15, b=10,c=5;
        if(a>b>c)
        {
            printf("True");
        }
        else
        {
            printf("False");
        }
    

    但是在 蟒蛇 是的 .

    a = 15
    b = 10
    c = 5
    if a > b > c:
        print("True")
    else:
        print("False")
    

    从中找到解决方案 link answer 把我的问题解释清楚。

    1 回复  |  直到 7 年前
        1
  •  6
  •   zvone    7 年前

    它们的行为不同,因为这就是语言的实现方式。

    a > b > c 从左到右求值。没有“操作符链接”的概念(我将很快进行讨论),因此表达式的计算方式为 (a > b) > c 哪个是 1 > c 哪个是 false (在C中,逻辑表达式返回1或0)。

    a>b>c 计算结果为 a > b and b > c (如合同规定) documentation 比较),结果是 True