下面的代码应该打印出我数组中的元素,相反,它一次又一次地打印出第一个元素而没有结束。我不知道这是否一件简单的事,但我找不到自己的错误。即使这个问题对您大多数人来说都很简单,也将不胜感激。
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 12 12 12 12 12 ... 12 预期结果:12 32 34
最诚挚的问候,
答案 0 :(得分:1)
在没有大括号的情况下,仅会在您发白之后执行该语句。
在您的情况下,这意味着仅会循环查询while之后的第一条语句,即“ System.out.println(myintarray [index]);”。
因为“ index ++;”未达到时,索引将具有相同的值0,因此您的程序将始终打印数组的第一个元素。您的代码作用域将被大括号转换为:
while(index < 3) {
System.out.println(myintarray[index]);
}
index++;
要执行多个语句,请将其全部用大括号括起来。
while(index < 3) {
System.out.println(myintarray[index]);
index++;
}
答案 1 :(得分:1)
这里的问题是您没有将括号放在打算放入while循环内的代码周围。您会看到,当while循环或for循环未附加花括号时,在大多数语言中,该循环只会将下一个命令视为在其内部,这将是该循环将运行的唯一命令
因此,在运行程序时,该程序仅重复“ System.out.println(myintarray [index])”,并且从不增加索引,因此“ myintarray [index]”的值永远停留在12。 / p>
因此,我们可以解决这两种方法:
int index = 0;
while(index < 3)
{
System.out.println(myintarray[index]);
index++;
}
或者,如果我们想用于循环,
for(int index = 0; index < 3, index++)
{
System.out.println(myintarray[index]);
}
答案 2 :(得分:1)
您的变量index
不会在循环内更新:它保持在初始值(index = 0
),这就是为什么它总是在您的数组中打印第一个值。另外,由于index
从未更新,因此条件index < 3
始终为true
,这就是循环永远不会结束的原因。
在while循环的主体周围添加括号可以解决您的问题:
public static void main(String[] args) {
int[] myIntArray = {12, 32, 34};
int index = 0;
while (index < 3) {
System.out.println(myIntArray[index]);
index++;
}
}
输出:
12
32
34
在您的版本中,while循环的主体为单行:System.out.println(myintarray[index]);