C关系操作符if-else


#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<10001<1000两者都为真,因此条件将始终为真。

您需要将比较分开,就像您在下面几行所做的那样:

if (0<n && n<1000) {

相关内容

  • 没有找到相关文章

最新更新