数组仅将项放在数组的第一个位置

时间:2015-07-20 21:00:27

标签: java arrays for-loop

我用Java编写计算器,我试图一次使用多个数学运算符来加/减/乘/除两个以上的数字。我试图将数字放在数组的不同位置,但由于某种原因它将所有数字放在第0位。不知道为什么会发生这种情况,因为我做了一个for循环,它将一个添加到"我&# 34;这应该改变阵列的位置。 (还有numDisplay是JTextField)

    add.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            for (int i = 0; i < array.length; i++) {
                array[i] = numDisplay.getText();
                addDouble = Double.parseDouble(array[i]);
                System.out.println(array[i] + " at place " + i);
                numDisplay.setText("");
                break;
            }
        }

    });

1 个答案:

答案 0 :(得分:4)

for (int i = 0; i < array.length; i++) {
    ...
    break; // breaks after first iteration
}

你在第一次迭代后突然退出循环,所以你在数组中只有一个数字。

  

我试图删除中断,但随后它会自动为每个其他地方添加零

您首先拥有array[i] = numDisplay.getText();,然后在循环结束时拥有numDisplay.setText("");。因此,在后续迭代中,它会尝试将空字符串转换为double,最终得到零。

  

我想要的是每次按下添加按钮,都是为了添加我想要添加到阵列的号码。

List<Double>在这里会更好。您可以在事件监听器中执行list.add(someDoubleValue)。否则,您需要跟踪到目前为止添加到阵列中的元素总数,然后在适当的位置插入一个新元素(如果有空间)。