c++while语句的问题
#include<stdio.h>main(){inti=3;while(i--);printf("%d",i);}为什么运算结果为-1...
#include <stdio.h>
main()
{
int i=3;
while(i--);
printf("%d",i);
}
为什么运算结果为-1 展开
main()
{
int i=3;
while(i--);
printf("%d",i);
}
为什么运算结果为-1 展开
展开全部
while(a>0)
{
sum=sum*a;
a--;
}
你这段代码又重新把a的值赋成了0,外层for你又读a的值,那么第一次的时候a初始为1,进入你的while循环后,a被赋值成0,sum永远是sum*1,当然会一直打1了。
{
sum=sum*a;
a--;
}
你这段代码又重新把a的值赋成了0,外层for你又读a的值,那么第一次的时候a初始为1,进入你的while循环后,a被赋值成0,sum永远是sum*1,当然会一直打1了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为i--是先取i值0,然后i--,这时i=-1,然后才是while判断取出的值0,退出循环,所以结果是-1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while(i--);这句后面有个分号,就是执行完while( i--)后,执行空,i=1时,while 执行后,i=0,之后会再进入一次循环,也就是while(0--),这时候为假,i=-1,则输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当i==0时,虽然while循环退出了,但是--操作还是要执行的,这样到你用printf的时候就成-1了。
相当于 while(i); i--;
相当于 while(i); i--;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询