Java Int数组传递复杂化

时间:2014-05-11 19:53:58

标签: java arrays syntax int

这是一个有趣的代码,经过测试我无法弄清楚为什么会发生这种情况,除了打印过程中的潜在错误。也许有人在这里可以启发我。

我正在寻找一个代表内存分配的简单数组。

在这个例子中,数组将是一个10位数组(将10作为参数传递)。由于没有分配内存,我将使10为负10。下面的代码只是将int数组初始化为长度10.后面我将0值设置为-10,最后一个值设置为-10。

        this.mem = new int [memsize];
    int memory = -1 * memsize;

    this.mem [0] = memory;
    this.mem [mem.length-1] = memory;

    for (int x= 0; x < mem.length - 1 ; x++){
        System.out.print(mem[x] + " , " );
        }

这对我来说非常有意义,但它打印出以下结果。

    -10 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1

我唯一的提示是system.out.print期间的潜在错误,因为它在打印时从未到达逗号。但是,没有错误被抛出,我将值设置为负10 ...不是1.任何人都知道为什么会发生这种情况?我再次运行它并且无法理解值

    -10 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2

请帮助

1 个答案:

答案 0 :(得分:2)

您复制的代码无法生成您指定的输出。她是一段有效的代码:

    int memsize = 10;
    int[] mem = new int [memsize];
    int memory = -memsize;

    mem [0] = memory;
    mem [mem.length-1] = memory;

    for (int x= 0; x <= mem.length - 1 ; x++){
        if (x != 0) {
            System.out.print(" , ");
        }
        System.out.print(mem[x]);
    }