菜鸟的Java程序的问题

a=0;c=0;
do{
--c;
a=a-1;
}while(a>0);
后,C的值是( )
A.0 B.1 C.-1 D.死循环

这个题答案是C,请问大虾们为什么呀

[quote]do{
--c;
a=a-1;
}while(a>0); [/quote]

答案就是 c=-1

首先理解下 do while
他和 while是不同的!
也就是 do{} 肯定会被执行一次! 然后再去判断条件的!

--c 所以 c最近就 等于 -1

先执行 do循环体内的语句 然后执行while的条件 如果条件不成立 则不在执行循环体 如果条件成立 则继续执行循环体 。

[code="java"]
do{
--c;
a=a-1;
}while(a>0);
[/code]

执行完循环体 c=-1,a=-1 然后执行while的判断 a>0 此时a=-1 小于零 所以条件不成立 不在执行循环体,故c=-1。

注意do while 和while的区别 前者是先执行 后判断条件 循环体至少执行一次(》1) 后者是先判断再执行,循环体不一定执行,执行的次数》0

do ...while 语句的功能是首先执行语句1到语句n,然后进行条件测试,如果条件成立,则继续执行语句1到语句n,否这跳出循环。如:
boolean test=false;
do
{
......
}
while(test);

这种控制并不是很常用,但有时却非常重要,使用时注意结尾处while语句后的分号。

do 语句 while (控制表达式);
while语句先测试控制表达式的值再执行循环体,而do/while语句先执行循环体再测试控制表达式的值。如果控制表达式的值一开始就是假,while语句的循环体一次都不执行,而do/while语句的循环体仍然要执行一次再跳出循环

自增运算符为“++”及自减运算符“--”是非常常用的算术运算,也是比较特殊的两种运算符, 它们的作用分别是使变量的值增加1和减少1,结果均保存在原变量中,其功能相当于加、减表达式的简写形式,例如i++相当于表达式i=i+1,--i相当于i=i-1

综上所述 所以选c

你就记住do{}while()循环里的循环体至少会执行一次,而且是先执行do循环体,你就看看这个执行了一遍后是否还满足while条件,满足的话继续执行,不满足就不执行了!

楼上几位都把问题说清楚咧,楼主基础有待提高,加油哦

C最后结果: -1

    do{}...while()循环,初次执行时,是先执行do块里面的语句,然后再进行while判断,所以说,上面的代码先执行“--c;”(此时,变量c的值为-1),然后再进行条件判断(条件不满足,跳出循序),所以最后c的值为-1。

你还是从c基本学起吧!!!

JAVA基础需要加强,看一下。do while 和while的区别有足于你理解