int[] tall = new int[28123];
for (int j = 1;j <= 28123; j++){
int x = 0;
tall[x] = j;
x++;
}
此代碼有什麼問題?不應將此代碼執行以下步驟:將值添加到java中的數組中
- 創建名爲高的尺寸28123.
- 製作索引0 = 1,索引1 = 2等的陣列。
int[] tall = new int[28123];
for (int j = 1;j <= 28123; j++){
int x = 0;
tall[x] = j;
x++;
}
此代碼有什麼問題?不應將此代碼執行以下步驟:將值添加到java中的數組中
不,您正在初始化每個循環中的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;
}
始終爲您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;
}
或之前只是刪除X(int x=0
)的初始化循環。
您總是在索引0
處插入值。數組中的其他位置永遠不會被值填充。
你或許應該有這樣的:
for (int j = 1; j <= 28123; j++) {
tall[j-1] = j;
}
放置X = 0以外的for循環,這是問題
我建議你通過你的調試器調試程序代碼的步驟是它是什麼對於。
我期望你會看到的是,每次代碼循環int x = 0;
設置。
你沒有一個,但很多的錯誤。它應該是:
int[] tall = new int[28123];
for (int j=0;j<28123;j++){
tall[j] = j+1;
}
您的代碼在數組的所有位置放置0。因爲數組的最後一個索引是28123-1(Java中的數組從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]
我希望這有助於。
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);
}
}
第六行