java通过数组进行索引循环并打印出元素?
下面的代码应该打印出数组中的元素,相反,它会一次又一次地打印出第一个元素,永远不会结束。我不知道这是不是一件简单的事情,但我没能找到我的错误。尽管这个问题对你们大多数人来说可能很简单,但我们将非常感谢你们的帮助
public static void main(String [] args) {
int[] myintarray = {12,32,34};
int index= 0;
while(index < 3)
System.out.println(myintarray[index]);
index++;
}
}
实际结果:12。。。12 预期结果:12334
致以最良好的祝愿
# 1 楼答案
在没有大括号的一段时间内,只有紧跟在你痛哭之后的语句才会被执行
在您的例子中,这意味着只有while之后的第一条语句将被循环,即“System.out.println(myintarray[index]);”
因为“索引++;”如果未达到,索引将具有相同的值0,因此程序将始终打印数组的第一个元素。实际上,您的代码范围将用大括号转换为:
要执行多条语句,请将其全部用大括号括起来
# 2 楼答案
这里的问题是,没有在打算进入while循环的代码周围加括号。您知道,当while循环或for循环没有附加括号时,在大多数语言中,循环只考虑下一个命令在其中,这将是由循环运行的唯一命令。p>
因此,在运行程序时,程序只会重复“System.out.println(myintarray[index])”,而不会增加索引,因此“myintarray[index]”的值永远停留在12
所以,我们可以用两种方法来解决这个问题:
或者,如果我们想使用for循环
# 3 楼答案
变量
index
没有在循环中更新:它保持在初始值(index = 0
),这就是为什么它总是打印数组中的第一个值。此外,由于index
从未更新,因此条件index < 3
始终是true
,这就是循环永不结束的原因在while循环体周围添加支架可以解决问题:
输出:
在您的版本中,while循环的主体是单行:
System.out.println(myintarray[index]);