以下是C程序。
我把它排除在其他地方,但如果它进入。
#include<stdio.h>
void main()
{
int iAge = 10;
int iMinAge = 1;
int iMaxAge = 18;
if(iMinAge >= iAge <= iMaxAge)
{
printf("\n in if...");
}
else
{
printf("\n in else...");
}
}
评估的顺序是什么?
答案 0 :(得分:3)
iMinAge >= iAge <= iMaxAge
相当于
(iMinAge >= iAge) <= iMaxAge
因此
0 <= iMaxAge
因此,它被评估为真。
答案 1 :(得分:2)
if(iMinAge >= iAge <= iMaxAge)
这在C中不起作用(不是你想要的方式)。
如果您想测试iAge
是否在[iMinAge
,imaxAge
]
这样做:if ( iAge >= iMinAge && iAge <= iMaxAge)
答案 2 :(得分:0)
首先,关系运算符的关联性是从左到右。 现在,在if循环中
if(iMinAge >= iAge <= iMaxAge)
按照关联性从左到右开始执行,因此首先评估iMinAge&gt; = iAge,返回0,现在
0<=iMaxAge
这是真的(1),所以内部的语句如果被执行。