📜  Java程序的输出 |设置 36(do-while 循环)

📅  最后修改于: 2022-05-13 01:56:10.986000             🧑  作者: Mango

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 循环将在外部循环之后执行。