main() {int y=10; while(y--);printf("y=%d\n",y); }为什么答案是-1啊
3个回答
展开全部
while(y--);等价于while(y--!=0);
最后有分号,因此一直执行while循环,直到y=0为止,退出循环,执行后面的printf语句。
从y=10开始,依次对y的值进行判断,只要不等于0,就y自减1,继续执行while循环。
一直到y=0,不满足循环条件,退出循环,执行y--,y自减1,变成-1
因此最后输出y=-1
本题的关键是注意while(y--);最后有分号,因此一直执行while循环,直到不满足循环条件,才退出while循环,执行后面的printf语句。
最后有分号,因此一直执行while循环,直到y=0为止,退出循环,执行后面的printf语句。
从y=10开始,依次对y的值进行判断,只要不等于0,就y自减1,继续执行while循环。
一直到y=0,不满足循环条件,退出循环,执行y--,y自减1,变成-1
因此最后输出y=-1
本题的关键是注意while(y--);最后有分号,因此一直执行while循环,直到不满足循环条件,才退出while循环,执行后面的printf语句。
展开全部
y--是先取y值,然后在减一
当y--为0时,while(0)是假,所以循环退出,此时y自身在减一变成-1.
当y--为0时,while(0)是假,所以循环退出,此时y自身在减一变成-1.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while(y--);等价于while(y--!=0);
最后有分号,因此一直执行while循环,直到y=0为止,退出循环,执行后面的printf语句。
从y=10开始,依次对y的值进行判断,只要不等于0,就y自减1,继续执行while循环。
一直到y=0,不满足循环条件,退出循环,执行y--,y自减1,变成-1
最后有分号,因此一直执行while循环,直到y=0为止,退出循环,执行后面的printf语句。
从y=10开始,依次对y的值进行判断,只要不等于0,就y自减1,继续执行while循环。
一直到y=0,不满足循环条件,退出循环,执行y--,y自减1,变成-1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询