这个程序有点疑惑

来源:百度知道 编辑:UC知道 时间:2024/05/20 15:58:13
main()
{
int x=11;
while (x>10&&x<50)
{x++;
if(x/2){x++;break;}
else continue;

}
printf("%d\n",x);
}
改变(x/3)的3的值,为什么在一定范围内输出结果不变?
加入改为x/4,也输出13,但是如果改为x/50结果不一样,可是如果改为x/51,居然和x/50结果一样,这个if(x/3)有什么用呢?

因为x/2肯定是一个非0的整数值。
if()需要的是一个判断而不是一个值
所以要把整数值转成逻辑值
所有非0的整数值逻辑值=1.也就是真
所以if(x/2)永远是真的。
因此
x++后
x=12
然后if x++
x=13
break
跳出循环。
是不是你条件写错了?