为什么我在Java中出现无法访问的语句错误?

时间:2014-08-08 14:54:58

标签: java unreachable-statement

我正在为一个在线教程中找到的hailstone序列编写一个代码,但是这样做我遇到了一个无法访问的语句错误。我不知道我的代码是否正确,如果我错了,我不想要纠正它的建议(关于冰雹序列,我想自己做... :))。我只想帮助解决第19行的“无法访问的语句”错误。

class HailstoneSequence {
    public static void main(String[] args) {
        int[][] a = new int[10][];
        a[0][0] = 125;
        int number = 125;

        for (int i = 0;; i++) {
            for (int j = 1; j < 10; j++) {
                if (number % 2 == 0) {
                    a[i][j] = number / 2;
                    number = number / 2;
                } else {
                    a[i][j] = (number * 3) + 1;
                    number = (number * 3) + 1;
                }
            }
        }

        for (int i = 0;; i++) {
            for (int j = 0; j < 10; j++) {
                System.out.println(a[i][j]);
            }
        }
    }
}

7 个答案:

答案 0 :(得分:10)

这是一个无限循环:

for(int i=0;;i++){

无论什么事情发生之后都永远不会被执行(即无法到达)。

答案 1 :(得分:5)

在你的第一个for循环中:

for(int i=0;;i++){
....
}

您没有定义结束条件。 e.g。

for(int i=0; i<10; i++){
....
}

因此循环永远不会退出。

答案 2 :(得分:3)

for(int i=0;;i++)的第一个无限循环会阻止任何其他代码到达。

答案 3 :(得分:2)

第7行有一个无限循环

答案 4 :(得分:2)

您忘记设置退出条件

for(int i=0;here;i++){

这可能会造成意外行为。

答案 5 :(得分:1)

你的第一个for语句(在第6行中)是一个无限循环,因此它会停止进一步的代码。

for(int i=0;;i++)

答案 6 :(得分:0)

第一个for循环中第6行遇到问题。

 for(int i=0;;i++) {

这里由于你没有任何退出条件,代码进入无限循环,循环永远不会退出。因为你的第一个循环永远不存在,所以for循环范围之外的任何东西都将无法访问。

考虑在for循环中添加退出条件(例如breakreturn等)以防止此行为。