在java中向数组添加值

时间:2013-03-17 21:03:53

标签: java arrays

int[] tall = new int[28123];

for (int j = 1;j <= 28123; j++){
    int x = 0;
    tall[x] = j;
    x++;
}

这段代码有什么问题?不应该这段代码执行以下操作:

  1. 创建一个名为tall的数组,大小为28123。
  2. 使索引0 = 1,索引1 = 2,依此类推。

9 个答案:

答案 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)

  • 第一行:创建数组。
  • 第三行循环从j = 1开始到j = 28123
  • 第四行,每次访问循环时都给出变量x value(0)。
  • 第五行,您将j的值放在索引0中。
  • 第六行你的值增加到x乘以1.(但它会在第4行重置为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);
    }
}