新手求指导c++ if语句问题
#include<stdio.h>intmain(){intx=1;if(x=0){x=x+2;}printf("%d\n",x);return0;}求助……为什么这样输...
#include<stdio.h>
int main()
{
int x=1;
if(x=0)
{
x=x+2;
}
printf("%d\n",x);
return 0;
}
求助……为什么这样输出的是0而不是2呢…… 展开
int main()
{
int x=1;
if(x=0)
{
x=x+2;
}
printf("%d\n",x);
return 0;
}
求助……为什么这样输出的是0而不是2呢…… 展开
展开全部
#include<stdio.h>
int main()
{
int x=1;
if(x=0) // =是赋值语句,将x赋值为0,而if(0)是不执行x=x+2的。所以输出0
{
x=x+2;
}
printf("%d\n",x);
return 0;
}
int main()
{
int x=1;
if(x=0) // =是赋值语句,将x赋值为0,而if(0)是不执行x=x+2的。所以输出0
{
x=x+2;
}
printf("%d\n",x);
return 0;
}
追问
也就是说这里的if(x=0)跟if(0)是等同的……?就是不执行后面大括号语句的意思……?
追答
是的,x=0是个赋值语句,而该表达式也有值,即为执行x=0后x的值。
所以if(x=0)等价于x=0;if(x),即if(0),if(0)则不会执行{}里面的语句了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
赋值语句的值 是 等号的右边表达式的值, 而if的条件为 x=0, 所以这个表达式的值 为0,也就是
false, 所以 不执行 x = x+2; 所以为0
false, 所以 不执行 x = x+2; 所以为0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你用的X= 0.而不是X==0.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-11-22
展开全部
请先自行判断一下
if(x=0)
与
if(x==0)
有什么区别?
if(x=0)
与
if(x==0)
有什么区别?
追问
x=0是赋值x==0是判断吧……
但是这道题里那个x=x+2不执行了么……?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询