全部问题 > 当前问题

while循环,我的a的最终值为什么是0呢?

#include<stdio.h>
main()
{
 int a=5;
 while(a--)
  printf("%d\n",a);
}

而老师说的是-1。

郭碧婷 2015-8-20 11:29:48

共 7 个回答

匿名课官 2015-8-20 11:31:16

a--为0,跳出循环,那a就是-1啊

荌靜ޓއއ 2015-8-20 11:31:58

int类型没有-1吧- -

郭碧婷 2015-8-20 11:33:16

回复 荌靜ޓއއ:int是整数,怎么会没有-1。

荌靜ޓއއ 2015-8-20 11:34:42

但是你输出的时候还没跳出循环。所以最后是0


祁老师 2015-8-20 11:35:19

回复 荌靜ޓއއ:是-1没错当第五次循环之后a为0  不满足条件跳出循环  你可以在printf后面再加一个printf输出最后的a就看出来了

最佳答案

祁老师 2015-8-20 11:35:30

是-1没错当第五次循环之后a为0  不满足条件跳出循环  你可以在printf后面再加一个printf输出最后的a就看出来了

嘿嘿大人 2015-8-20 11:42:17

a--与--a的区别就是,a--在执行当前语句时a--=a的值,但是执行完当前语句后会自减一,而--a是执行当前语句就已经自减一了,所以就本题而言,a--等于0执行while(a--)判断后,a还要自减一,所以答案是-1

问题来自: while循环和do循环