我正在为在线教程中找到的冰雹序列编写代码,但是在这样做时,我遇到了一个无法访问的语句错误。我不知道我的代码是否正确,如果我错了,我不想要纠正它的建议(关于冰雹序列,我想自己做…:))。我只是想帮助解决第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循环中添加退出条件(如break
或return
等)来防止这种行为。