我正在尝试创建一个用户输入起始编号和结束编号的程序。程序打印中间的所有值,包括开始和结束,并在消息对话框屏幕上显示所有值。但我不能让他们在一个消息对话框中显示所有数字,它会为每个数字创建一个新数字。
public static void main(String[] args) {
int start;
int end;
int result;
start = Integer.parseInt(JOptionPane.showInputDialog("Please enter a starting integer "));
end = Integer.parseInt(JOptionPane.showInputDialog("Please enter an ending integer "));
while (start <= end) {
result = start;
start++;
JOptionPane.showMessageDialog(null,result);
}
}
答案 0 :(得分:2)
循环在每次迭代期间调用showMessageDialog()
。您希望循环将每个数字附加到字符串,然后,在完成后,在对话框中显示整个字符串。
public static void main(String[] args) {
int start;
int end;
int result;
start = Integer.parseInt(JOptionPane.showInputDialog(
"Please enter a starting integer "));
end = Integer.parseInt(JOptionPane.showInputDialog(
"Please enter an ending integer "));
String msg = "";
while (start <= end) {
msg = msg + " " + start;
start++;
}
JOptionPane.showMessageDialog(null, msg);
}
在生产代码中,您需要使用StringBuilder
和append()
每个数字,而不是在循环的每次迭代期间生成新的String,因为它还有更多高效。但是我没有分散实施细节,而是选择专注于算法。
这是StringBuilder
版本:
StringBuilder msg = new StringBuilder();
while (start <= end) {
msg.append(start).append(" ");
start++;
}
JOptionPane.showMessageDialog(null, msg.toString());