if 语句的问题
#include<stdio.h>main()
{ int x=1;
if(x=2)
printf("OK");
else if(x<2)
printf("%d\n",x);
else printf("quite");
}
为什么输出的结果是ok,而不是quite?
if语句还有什么要注意的地方吗?请大家指教下!
楼上的意思是输出“quite”,可是按你的的条件的意思只有x>2才可以输出。而你开始将x赋值为1,当x<2时,(x 为1,当然小于2了),就输出结果1了。
解释下为什么你的程序会输出quite
#include<stdio.h>
main()
{
int x=1; //此时x为1
if(x=2) /*这里楼主由于用了赋值语句,而不是逻辑运算==,所以此时x为2,而(x=2)的结果是2,why?还记得这样的赋值语句嘛?x=y=2,也就是说赋值语句是右传递的,而if语句的判断是非0就是真,所以此条件成立,执行语句printf("OK")*/
{
printf("OK");
} else if(x<2) {
printf("%d\n",x);
}else {
printf("quite");
}
}
另外,即使把x=2改成了x==2,楼主的程序也不能执行语句printf("quite"),why?请楼主仔细分析上面那段规范的if else结构