为什么在Java中出现不可达语句错误?



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

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]);
            }
        }
    }
}

这是一个无限循环:

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

后面的内容永远不会被执行(即不可访问)。

第一个for循环:

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

没有定义结束条件。例如

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

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

有一个无限循环@第7行

忘记设置退出条件

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

这可能会产生意想不到的行为

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

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

在第一个for循环的第6行有问题。

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

这里因为没有任何退出条件,代码将进入无限循环并且循环永远不会退出。因为第一个循环不存在,所以在for循环范围之外的任何内容都将不可达。

考虑在for循环中添加退出条件(如breakreturn等)来防止这种行为。

最新更新