#include<stdio.h>
int main()
{
int n=2500;
if(0<n<1000){
printf("non");
}
else{
printf("yesn");
}
int x=2500;
if(n>0 && n<1000){
printf("non");
}
else{
printf("yesn");
}
}
对于n的if-else应该打印"yes">但是输出是"no">
为什么0<n<1000
不工作
这个表达式并不像你想象的那样:
0<n<1000
C操作符没有"between"的概念。上面的代码实际上解析为:
(0<n)<1000
首先对0<n
求值,结果要么是0,要么是1。然后将检查结果与1000进行比较,即0<1000
或1<1000
两者都为真,因此条件将始终为真。
您需要将比较分开,就像您在下面几行所做的那样:
if (0<n && n<1000) {