gpt4 book ai didi

c - 为什么 (0 < a < 5) 这样的条件总是为真?

转载 作者:行者123 更新时间:2023-12-02 08:55:22 25 4
gpt4 key购买 nike

我用 C 实现了以下程序

    #include <stdio.h>
int main()
{
int a = 10 ;
if(0 < a < 5)
{
printf("The condition is true!") ;
}
return 0 ;
}

为什么会出现这种情况 0<a<5总是返回true

最佳答案

与 Python(具有 operator chaining )不同,C 将条件计算为:

(0 < a) < 5

(0 < a)的结果要么是0,要么是1,两者都小于5,所以整体条件为真。

在 C 语言中,必须编写范围测试:

0 < a && a < 5

请注意 Python 脚本:

for a in range(-1,7):
if 0 < a < 5:
print a, " in range"
else:
print a, " out of range"

产生输出:

-1  out of range
0 out of range
1 in range
2 in range
3 in range
4 in range
5 out of range
6 out of range

使用相同的“等效”C 程序 if当然,条件将为每个值生成“在范围内”的答案。

关于c - 为什么 (0 < a < 5) 这样的条件总是为真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20907265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com