在 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 把我的问题解释清楚。
它们的行为不同,因为这就是语言的实现方式。
a > b > c 从左到右求值。没有“操作符链接”的概念(我将很快进行讨论),因此表达式的计算方式为 (a > b) > c 哪个是 1 > c 哪个是 false (在C中,逻辑表达式返回1或0)。
a > b > c
(a > b) > c
1 > c
false
a>b>c 计算结果为 a > b and b > c (如合同规定) documentation 比较),结果是 True
a>b>c
a > b and b > c
True