5个回答
展开全部
判断y=y-1的值是否等于x,如果不等于则执行循环体,如果等于则退出循环,判断之后,不管是否等于,都让x自加1(即x=x+1)。举个例子说明下吧,假如执行while语句前x的值为3,y的值为6:执行到while时,由于是x++,自加运算符++在x的后面,所以先取x的值3,即不等号!=左面的值为3,不等号右面的值为6-1=5,3不等于4,所以表达式x++!=(y-=1)的值为真,判断之后x的值自加1变为4,同时执行循环体;循环体执行完之后,再次判断,此时不等号左面的值为4,右面的为y=5-1=4,此时x++!=(y-=1)的值为假,判断之后x=4+1=5并退出循环。
希望能对你有点帮助!
希望能对你有点帮助!
展开全部
把y的值减1与x比较,如果两者不等,则进入循环体并把x的值自增1.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先了解下优先级与结合性
1.--为自减运算符,第二优先级,自右至左
2.x--这个表达式:先使用x的值,接着x=x-1;
整个表达式的值为x
看
while(x--)
{
循环体
}
首先
①判断x--这个表达式的值是否为0(即x的值),如果为0,不执行循环体
但仍然执行x=x-1;
例如:
int x=0; 则不执行循环体,x最终值为-1
②如果x的初值不为0,判断x--这个表达式的值是否为0,(不论是否为0)x=x-1,
如果x--表达式的值不为0,在执行循环体.(真绕...看例子)
例如:
int x=3;
while(x--)
{
printf("while\n");
}
printf("%d\n",x);
①3-->不为0-->x=x-1-->x=2
执行循环体 while
②2-->不为0-->x=x-1-->x=1
同上
③1-->不为0-->x=x-1-->x=0
同上
④注意 此时x=0,将不再执行循环体,但x=x-1;-->x=-1
(建议你逐步调试,很清晰)
1.--为自减运算符,第二优先级,自右至左
2.x--这个表达式:先使用x的值,接着x=x-1;
整个表达式的值为x
看
while(x--)
{
循环体
}
首先
①判断x--这个表达式的值是否为0(即x的值),如果为0,不执行循环体
但仍然执行x=x-1;
例如:
int x=0; 则不执行循环体,x最终值为-1
②如果x的初值不为0,判断x--这个表达式的值是否为0,(不论是否为0)x=x-1,
如果x--表达式的值不为0,在执行循环体.(真绕...看例子)
例如:
int x=3;
while(x--)
{
printf("while\n");
}
printf("%d\n",x);
①3-->不为0-->x=x-1-->x=2
执行循环体 while
②2-->不为0-->x=x-1-->x=1
同上
③1-->不为0-->x=x-1-->x=0
同上
④注意 此时x=0,将不再执行循环体,但x=x-1;-->x=-1
(建议你逐步调试,很清晰)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-09-28
展开全部
y=y-1;
while(x != y)
x++
while(x != y)
x++
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询