0

我在x定义的行上遇到越界错误。我究竟做错了什么?

import java.util.ArrayList;
import java.lang.Math;

public class poopy
{
    public static void main(String[] args)
    {
       ArrayList<Integer> num = new ArrayList<Integer>();
       double x;

       for(int j=1; j<5; j++)
       {
          num.add(j);
       }

       for(int i: num)
       {
           x = num.get(i) * Math.pow(10,i);
           System.out.println(x);
       }


   }
}

这将用于计算器,ArrayList每次按下数字按钮时 int 都会增长。

4

4 回答 4

2

您将需要传递foreach循环并使用老式for循环:

   for(int i=0;i<num.size;i++)
   {
       x = num.get(i) * Math.pow(10,i);
       System.out.println(x);
   }

发生的情况是您获得了数组的值,但您也需要索引。所以,没有 foreach 循环。

于 2013-10-04T16:33:05.487 回答
0
for(int i: num)

我这里是值而不是索引。

于 2013-10-04T16:24:25.630 回答
0

你的 for (for-each) 循环应该是这样的:

for(int i: num)
{
    x = i * Math.pow(10,i);
    System.out.println(x);
}

i 而不是 num.get(i)

如果要按索引访问项目,则不应使用 for-each 循环,请使用 for 循环,如下所示:

for(int i = 0; i < num.size(); i++)
{
    x = num.get(i) * Math.pow(10,i);
    System.out.println(x);
}
于 2013-10-04T18:05:06.187 回答
-1

使用num.get(i)方法,您可以通过索引访问数组。你的数组元素是[num[0]=1, num[1]=2, num[2]=3, num[3]=4].

循环for(int i: num)正在访问数组的元素num并将它们存储在一个变量i中。

于 2013-10-04T16:30:05.173 回答