int[] tall = new int[28123];
for (int j = 1;j <= 28123; j++){
int x = 0;
tall[x] = j;
x++;
}
这段代码有什么问题?不应该这段代码执行以下操作:
答案 0 :(得分:5)
不,你在每个循环中重新初始化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;
}
答案 1 :(得分:2)
我建议您逐步调试调试器中的代码,因为调试程序就是它的用途。
我希望您会看到每次设置代码循环int x = 0;
时都会。
答案 2 :(得分:2)
你没有一个,但很多错误。它应该是:
int[] tall = new int[28123];
for (int j=0;j<28123;j++){
tall[j] = j+1;
}
您的代码在数组的所有位置都放置了0。
Morover,它会抛出异常,因为数组的最后一个索引是28123-1(Java中的数组从0开始!)。
答案 3 :(得分: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;
}
或者只是在for循环之前删除x(int x=0
)的初始化。
答案 4 :(得分:0)
您始终在索引0
处插入值。数组中的其他位置永远不会充满值。
你应该有这个:
for (int j = 1; j <= 28123; j++) {
tall[j-1] = j;
}
答案 5 :(得分:0)
将x = 0放在for循环之外,这是问题
答案 6 :(得分:0)
我明白你要做的是什么,但我认为你可以用下面的代码做得更好。而且,这很容易。
int[] Tall = new int[28123];
for(int i = 0; i<Tall.length ; i++){
Tall[i]= i+1;
}
System.out.print(Arrays.toString(Tall));
“Arrays.toString(int [])”方法返回指定int数组内容的字符串表示形式。此外,要使用它,您将不得不使用:
import java.util.Arrays
输出将如下:
[1,2,3,4,5,6,7,8,9,10,..............,28122,28123]
我希望这会有所帮助。
答案 7 :(得分:0)
答案 8 :(得分:0)
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);
}
}