为啥我在 Java 中出现无法访问的语句错误?
Posted
技术标签:
【中文标题】为啥我在 Java 中出现无法访问的语句错误?【英文标题】: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]);
【问题讨论】:
【参考方案1】:这是一个无限循环:
for(int i=0;;i++)
永远不会执行之后发生的任何事情(即无法访问)。
【讨论】:
我的意图是指定一个二维数组,其水平长度固定为 10,而垂直长度取决于序列的长度。你有什么建议? @user3889963 您需要初始化数组中的每个“列”。这些可以是不同的长度。然后在你的for循环中你可以使用a.length
和a[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 循环中添加退出条件(例如 break
或 return
等)以防止这种行为。
【讨论】:
以上是关于为啥我在 Java 中出现无法访问的语句错误?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Java 编译器不会为无法访问的 then 语句生成无法访问的语句错误?
为啥会出现此错误:无法在初始化程序中访问实例成员'*'。”?
为啥我在使用 PL/SQL 的 Oauth 2 访问令牌代码中出现此错误?
为啥我的 UICollectionView 无法访问我在 for 循环中创建的数组 - 致命错误:索引超出范围
为啥我在尝试访问此 WordPress 网站时收到此 403 Forbidden 错误?为啥它无法读取 .htaccess 文件?