0

创建一个程序,要求用户使用 for 循环输入 3 个数字,然后测试这些数字并按升序显示。

样本输入:5 2 7

样本输出:2 5 7

我坚持测试程序。我不知道如何测试这些数字,因为保存这些数字的变量只是一个变量并且在 for 循环内

这是我的示例代码:

import javax.swing.JOptionPane;
public class ascending
{
  public static void main(String args[])
   {

 for(int x= 0; x<3;x++)
 {
  String Snum = JOptionPane.showInputDialog("Enter a number");
  int num = Integer.parseInt(Snum);
 }

 <Here comes the program wherein I will test the 3 numbers inputted by the user and
   display in ascending order. I don't know where to start. :'( >
4

2 回答 2

2

您需要将号码存储在某处。整数数组是一个好的开始,尽管您可以使用 ArrayList 之类的集合。

int allNums[] = new int[3];

然后您的循环将数字存储到数组中:

for(int x= 0; x<3;x++)
{
   String Snum = JOptionPane.showInputDialog("Enter a number");
   allNums[x] = Integer.parseInt(Snum);
}

然后你对数组进行排序并打印它。

一些明显的改进:

  • 摆脱神奇的数字 3:static final const int NUM_ITEMS = 3;
  • 赶上NumberFormatExceptionparseInt
于 2012-10-08T03:15:17.063 回答
0

这是一种愚蠢的方法:

  static {
        int v1,v2,v3;
        for (int i=0;i<3;i++) {
            if (i==0) {v1=Integer.parseInt(s);}
            if (i==1) {v2=Integer.parseInt(s);}
            if (i==2) {v3=Integer.parseInt(s);}
        }
        if ( v1 < v2 && v2 < v3 ) { System.out.format("%d %d %d", v1,v2,v3); }
        if ( v1 < v3 && v3 < v2 ) { System.out.format("%d %d %d", v1,v3,v2); }
        // 1 2 3
        // 1 3 2
        // 2 1 3
        // 2 3 1
        // 3 1 2
        // 3 2 1
    }
于 2012-10-08T03:34:06.357 回答