使索引遍历数组并打印出元素?

时间:2019-09-14 22:05:44

标签: java arrays

下面的代码应该打印出我数组中的元素,相反,它一次又一次地打印出第一个元素而没有结束。我不知道这是否一件简单的事,但我找不到自己的错误。即使这个问题对您大多数人来说都很简单,也将不胜感激。

    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

最诚挚的问候,

3 个答案:

答案 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]);