int[] tall = new int[28123];
for (int j = 1;j <= 28123; j++){
int x = 0;
tall[x] = j;
x++;
}
这段代码有什么问题?此代码不应该执行以下操作:
- 创建一个名为 tall 的数组,大小为 28123。
- 使索引 0 = 1,索引 1 = 2,依此类推。
x
不,您在每个循环中都重新初始化。改成:
int[] tall = new int[28123];
int x = 0;
for (int j = 1;j<=28123;j++){
tall[x] = j;
x++;
}
或者,甚至更好(因为x
总是等于j-1
):
int[] tall = new int[28123];
for (int j = 1;j<=28123;j++){
tall[j-1] = j;
}
我建议您在调试器中逐步执行代码,因为调试程序就是它的用途。
我希望您会看到每次int x = 0;
设置代码循环时。
你没有一个错误,而是很多错误。它应该是:
int[] tall = new int[28123];
for (int j=0;j<28123;j++){
tall[j] = j+1;
}
您的代码将 0 放在数组的所有位置。
此外,它会抛出异常,因为数组的最后一个索引是 28123-1(Java 中的数组从 0 开始!)。
您总是在更改数组的值之前设置x
为。0
您可以使用:
int[] tall = new int[28123];
for (int j = 0;j<28123;j++){
// Or whatever value you want to set.
tall[j] = j + 1;
}
int x=0
或者只是在 for 循环之前删除 x ( ) 的初始化。
将 x=0 放在 for 循环之外就是问题所在
public class Array {
static int a[] = new int[101];
int counter = 0;
public int add(int num) {
if (num <= 100) {
Array.a[this.counter] = num;
System.out.println(a[this.counter]);
this.counter++;
return add(num + 1);
}
return 0;
}
public static void main(String[] args) {
Array c = new Array();
c.add(1);
}
}