为了账号安全,请及时绑定邮箱和手机立即绑定

通过数组进行索引循环并打印出元素?

通过数组进行索引循环并打印出元素?

翻过高山走不出你 2023-07-28 16:08:17
下面的代码应该打印出我的数组的元素,相反,它一次又一次地打印出第一个元素,而不会结束。我不知道这是否是一件简单的事情,但我无法找到我的错误。尽管这个问题对你们大多数人来说可能很容易,但我们将不胜感激。    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 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

下面的代码应该打印出我的数组的元素,相反,它一次又一次地打印出第一个元素,而不会结束。我不知道这是否是一件简单的事情,但我无法找到我的错误。尽管这个问题对你们大多数人来说可能很容易,但我们将不胜感激。


    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


此致,您的变量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]);


查看完整回答
反对 回复 2023-07-28
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

这里的问题是,您没有在要进入 while 循环的代码周围放置大括号。您会看到,当 while 循环或 for 循环没有附加大括号时,在大多数语言中,循环只会考虑下一个命令在其中,这将是循环运行的唯一命令。


因此,当运行你的程序时,程序只重复“System.out.println(myintarray[index])”,并且从不增加索引,因此“myintarray[index]”的值永远停留在12。


所以,我们可以通过两种方式解决这个问题:


int index = 0;

while(index < 3)

{

    System.out.println(myintarray[index]);

    index++;

}

或者,如果我们想使用 for 循环,


for(int index = 0; index < 3, index++)

{

    System.out.println(myintarray[index]);

}


查看完整回答
反对 回复 2023-07-28
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

在没有大括号的 while 中,只有紧跟在 while 后面的语句才会被执行。


在您的情况下,这意味着只有 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++;

}


查看完整回答
反对 回复 2023-07-28
  • 3 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信