第二个print语句如何给出编译时错误?

时间:2018-06-09 16:26:28

标签: java iteration

第二个print语句给出了编译时错误。请解释

public class mainClass {
    public static void main(String args[]) {    
        final int a=10, b=20;

        while(a < b) {
            System.out.println("Hello");
        }
        System.out.println("World");
    } 
}

2 个答案:

答案 0 :(得分:1)

条件a<b始终成立。

编译器检测到您的程序永远不会结束,并且永远不会到达第二个打印行,因此会抛出编译错误

您可能希望将while更改为if支票

答案 1 :(得分:0)

您的代码可以写成:

public class Answer {

    public static void main(String[] args) {

        while (10 < 20) { //always true, so loop is infinite
            System.out.println("Hello");
        }
        System.out.println("World"); //previous loop is infinite => this statement will never be reached
    }

}

但是,如果你写这样的东西:

public class Answer {

    public static void main(String[] args) {

        int a = 10, b = 20;

        while (a < b) {

            System.out.println("Hello");
            b--; //if you decrease var b, in some point while condition becomes false
        }
        System.out.println("World"); //AND this statement will be reached
    }

}

请注意,int b不能是最终的!