Java程序的输出 |设置 36(do-while 循环)
先决条件: Java的while循环
1. 以下程序的输出是什么?
class Test {
public
static void main(String[] args)
{
do
while (true)
System.out.println("HELLO");
while (false);
}
}
选项:
1. 你好
2.编译时错误
3.你好(无限)
4. 无输出
The answer is option (3)
解释:像这样思考上面的例子
do
while(true)
System.out.println("HELLO");
while(false);
这是一个简单的 do-while 循环。正如我们所知,在没有花括号的 while 循环中,我们只能采用一个不应该是声明性的语句。在这里,HELLO 是一个没有花括号的 while 循环语句。在这里,内部 while 循环总是给出 true 并且程序输出将无限地 HELLO。
2. 以下程序的输出是什么?
class Test {
public
static void main(String[] args)
{
do
System.out.println("FRIENDS");
while (true);
System.out.println("ENEMY");
}
}
选项:
1.编译时错误
2. 朋友
3.无输出
4. 敌人
The answer is option (1)
解释:这里 while 循环总是给出 true 并且它会无限打印 FRIENDS 而没有改变打印 ENEMY。这给出了编译时错误说
prog.java:8: error: unreachable statement
System.out.println("ENEMY");
3. 以下程序的输出是什么?
class Test {
public
static void main(String[] args)
{
int x = 1, y = 2;
do
System.out.println("FRIENDS");
while (x < y);
System.out.println("ENEMY");
}
}
选项:
1. 朋友
2. 敌人
3. 无输出
4.朋友(无限)
The answer is option (4)
解释:这里在编译时编译器认为 x 和 y 都是变量,其值可以更改,这将使 while 循环为 false。这提供了打印 ENEMY 的机会,这就是编译器没有抛出任何编译时错误的原因。
4. 以下程序的输出是什么?
class Test {
public
static void main(String[] args)
{
do
while (true)
;
System.out.println("HELLO");
}
}
选项:
1 你好
2 你好(无限)
3 错误:无法访问的语句
4 错误:预期的
The answer is option (4)
说明:在上面的例子中,有一个 do-while 循环的语法错误。众所周知,如果没有大括号,我们可以采用一个不能声明的语句,但是如果我们没有指定任何语句并且没有提到任何大括号,那么编译器会给出一个错误,说 Error: ;预期的。
5. 以下程序的输出是什么?
class Test {
public static void main(String[] args)
{
do {
System.out.print(1);
do {
System.out.print(2);
} while (false);
} while (false);
}
}
选项:
1. 12
2. 21
3. 1
4. 2
The answer is option (1)
说明:在上面的例子中,在 do while 中嵌套将在嵌套过程中工作。第一个内部 do-while 循环将在外部循环之后执行。