一道简单的Java试题

来源:百度知道 编辑:UC知道 时间:2024/05/09 06:43:15
public class Test
{
public static void main(String args[])
{
int i = 5;
do {
System.out.println(i);
} while (--i>4);
System.out.println("finished");
}
}
执行后的输出是什么?
A、 5
B、4
C、6
D、finished
E、None
答:A,D
谁能帮我解释下,答案为什么会有D? --i>4 已经不成立,不是应该跳出循环吗?怎么会打印出“finished”呢?

呵呵,因为System.out.println("finished"); 并没有在循环里啊,所以他是一定输出的,并且只会输出一次

这是一个 do {}while() 判断循环结构,是先执行后判断,
执行完System.out.println(i); 后跳出循环,
而System.out.println("finished"); 是在do {}while() ,
的外面,do {}while() 不能对
System.out.println("finished"); 进行管理,
所以有两个答案A , D .

while (--i>4);
只会循环一次的,然后那个打印finished是在跳出循环以后,因此会打印的。

System.out.println("finished"); 这句在循环外边。。。。。

兄弟,请你看看你的System.out.println("finished"); 语句的位置是在哪里,
do{}while()循环是无论如何都会进行一次循环。当你的i值为5的时候这个时候打印了5.直接进入了while,发现--i=4 是不大于4的,所以跳出了do。。while..但是还在main方法里啊。顺序执行下面的语句,碰到了System.out.println("finished"); 肯定要打印的。