日期:2014-05-20  浏览次数:20529 次

求助,一道笔试题,有点不太明白
int a = 0,c = 0;
do{
--c;
a--;
}while(a > 0);
System.out.println(c);
问:C是多少?? 请各路高手讲明白点.

------解决方案--------------------
Java code

int a = 0,c = 0;
do{
--c;//c=-1;
a--;//a=-1;
}while(a > 0);//不成立,不在持行do
System.out.println(c);//直接打印C  -1

------解决方案--------------------
Java code

//初始化变量a和c,初始值都是0
int a = 0, c = 0;
//do...while循环是先循环一次,然后判断条件是否成立,所以最低进去一次
do{
//--c是先把c-1然后赋给c,也就是c=c-1;c=0-1;c=-1;
  --c;
//a--是运算完a然后再-1,这时候其实a也是-1了
  a--;
//这时候的a是-1,所以这个条件不成立,不会再次循环,直接退出循环
}while(a > 0);
//打印结果应该是-1才对。
System.out.println(c);
//以上是个人理解,还需楼主亲自试验,嘿嘿!