我试图创建一个for循环程序,用户在其中输入起始数字和结束数字,然后按下按钮来显示值。例子:
但是,当我运行程序并按下按钮时,它只显示结束数字,如下所示:
到目前为止,我的代码是这样的:到目前为止,我还没有找到任何逻辑错误。
private void valuesButtonActionPerformed(java.awt.event.ActionEvent evt) {
int starting;
starting = Integer.parseInt(startingInput.getText());
int ending;
ending = Integer.parseInt(endingInput.getText());
for (int i = starting; i <= ending; i++){
outputField.setText(i + "");
}
}
4条答案
按热度按时间v440hwme1#
您错过了连接所有数字的步骤:
qncylg1j2#
下一行正在替换的旧内容
outputField
:你应该这样写:
i、 e.附加
i + " "
到旧的内容outputField
.laik7k3q3#
你的电话
setText
正在覆盖输出字段中的字符串;最后的决定是什么时候i == ending
,所以结尾的数字就是你看到的。您想要的是将新的数字连接到上一个输出字符串。一种解决方案是将输出存储为字符串,在循环中附加每个数字,然后将文本设置为输出字符串。
nnt7mjpx4#
这
将输出设置为一个数字,然后设置下一个,然后设置下一个。。。发生得如此之快,你所看到的都是最后一次。
试试这个:它累积到目前为止的输出,并使用它来显示。
这仍在输出中间结果,因此有点浪费,而且仍然发生得太快,无法看到。但它最接近你的原作,所以我就这样留下了。您可以在循环结束后将settext调用移动到,以仅输出最终结果。
其他答案提到stringbuilder,但我没有;我不敢一下子介绍太多新概念。stringbuilder在性能很重要的情况下发挥作用,但这在这里并不适用,我认为“显而易见”是入门练习的最佳选择。