【问题标题】:Why do I get unreachable statement error in Java?为什么我在 Java 中出现无法访问的语句错误?
【发布时间】:2014-10-02 02:23:50
【问题描述】:

我正在整理我在在线教程中找到的冰雹序列的代码,但在这样做时我遇到了无法访问的语句错误。我不知道我的代码是否正确,如果我错了,我不希望得到纠正它的建议(关于冰雹序列,我想自己这样做..:))。我只是想帮助解决第 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]);
            }
        }
    }
}

【问题讨论】:

    标签: java unreachable-statement


    【解决方案1】:

    这是一个无限循环:

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

    永远不会执行之后发生的任何事情(即无法访问)。

    【讨论】:

    • 我的意图是指定一个二维数组,其水平长度固定为 10,而垂直长度取决于序列的长度。你有什么建议?
    • @user3889963 您需要初始化数组中的每个“列”。这些可以是不同的长度。然后在你的for循环中你可以使用a.lengtha[i].length
    【解决方案2】:

    在你的第一个 for 循环中:

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

    您没有定义结束条件。例如

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

    因此循环永远不会退出。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        第 7 行有一个无限循环

        【讨论】:

          【解决方案5】:

          你忘了设置退出条件

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

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

          【讨论】:

            【解决方案6】:

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

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

            【讨论】:

              【解决方案7】:

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

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

              由于您没有任何退出条件,因此代码将进入无限循环并且循环永远不会退出。由于您的第一个循环永远不存在,因此此 for 循环范围之外的任何内容都将无法访问。

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

              【讨论】:

                猜你喜欢
                • 2011-04-17
                • 1970-01-01
                • 1970-01-01
                • 2016-03-30
                • 2021-11-09
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多