Java 增强的For循环异常
在玩循环时创建了以下代码。下面的代码将斐波那契值存储到数组中,然后使用for循环打印它们Java 增强的For循环异常,java,arrays,for-loop,Java,Arrays,For Loop,在玩循环时创建了以下代码。下面的代码将斐波那契值存储到数组中,然后使用for循环打印它们 int [] numbers; numbers = new int[25]; numbers[0] = 1; numbers[1] = 1; System.out.println("Initializing the array values"); for(int i = 2; i < numbers.length; i++) {
int [] numbers;
numbers = new int[25];
numbers[0] = 1;
numbers[1] = 1;
System.out.println("Initializing the array values");
for(int i = 2; i < numbers.length; i++)
{
numbers[i] = numbers[i-1] + numbers[i-2];
}
System.out.println("Printing out Fibonacci values");
for(int i = 0; i < numbers.length; i++)
{
System.out.print(numbers[i] + ", ");
}
我不明白出了什么问题。更改第二个循环不应更改值(您会注意到斐波那契值是错误的(即缺少值))。我不明白为什么一个简单的增强for循环会跳过索引。现在,这真的不是什么大不了的,因为这不是为了一个项目或任何东西,它只是让我感到不安,我不知道为什么它要这么做。有什么线索吗
增强的for循环就是这样的
for(int i : numbers)
{
System.out.print(numbers[i] + ", ");
}
for(int i=0;i
i
这里是数组中的元素,而不是索引。它可以大于数字。长度
例如,如果numbers={1,2,3,9}
,那么i
将是1
,2
,3
,9
。但是它的长度是4,所以当您在其中的元素上循环时,您试图执行的numbers[9]
超出了它的大小
您可能希望System.out.print(i+“,”);
应该是
for(int i : numbers)
{
System.out.print(i + ", ");
}
您不需要在增强型for循环中使用索引。快速解释基于0的索引将是一个很好的答案!抱歉,这只是我在问题中提出的代码中的一个错误。这是第一次正确完成的。它仍然无法解释增强型for循环不起作用的原因。我编辑了问题代码以反映这一点.谢谢。简洁易懂。
int tab[] = new int[3]; //tab of length 3
tab[0] = 11;
tab[1] = 24;
tab[2] = 5;
int[] numbers = {1,2,3,4,5,6,7,8,9,10};
class EnhancedForDemo {
public static void main(String[] args){
int[] numbers =
{1,2,3,4,5,6,7,8,9,10};
for (int item : numbers) {
System.out.println("Count is: " + item);
}
}
}
for(int i : numbers)
{
System.out.print(numbers[i] + ", ");
}
for(int i : numbers)
{
System.out.print(numbers[i] + ", ");
}
for(int i : numbers)
{
System.out.print(i + ", ");
}