我用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;
}
}
});
答案 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)
。否则,您需要跟踪到目前为止添加到阵列中的元素总数,然后在适当的位置插入一个新元素(如果有空间)。