在 while 循环中显示数字

Displaying numbers in a while loop

我正在尝试创建一个程序,用户可以在其中输入起始号码和结束号码。该程序打印包括开始和结束在内的所有值,并在消息对话框屏幕上显示所有这些值。但我无法让他们在单个消息对话框中显示所有数字,它会为每个数字创建一个新数字。

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

循环在每次迭代期间调用 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() 每个数字,而不是在循环的每次迭代期间生成一个新的字符串,因为它更有效。但是,我选择专注于算法,而不是用实现细节分散您的注意力。

这是 StringBuilder 版本:

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

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