在while循环中显示数字

时间:2016-04-02 15:51:57

标签: java variables while-loop joptionpane

我正在尝试创建一个用户输入起始编号和结束编号的程序。程序打印中间的所有值,包括开始和结束,并在消息对话框屏幕上显示所有值。但我不能让他们在一个消息对话框中显示所有数字,它会为每个数字创建一个新数字。

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);
    }
}

1 个答案:

答案 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);
}

在生产代码中,您需要使用StringBuilderappend()每个数字,而不是在循环的每次迭代期间生成新的String,因为它还有更多高效。但是我没有分散实施细节,而是选择专注于算法。

这是StringBuilder版本:

  StringBuilder msg = new StringBuilder();
  while (start <= end) {
    msg.append(start).append(" ");
    start++;
  }

  JOptionPane.showMessageDialog(null, msg.toString());