如何在Java中填充数组后停止接受用户输入

时间:2013-10-03 17:49:04

标签: java arrays sorting

首先我要说的是,这不是一个家庭作业问题。我对JAVA课程的节奏感到不满意,所以我开始编写个人课程,并从中受益。我复制并粘贴了一个程序,将整数按降序排序并对其进行修改,以便按升序形式对双精度进行排序,以帮助我在Stats类中完成作业。 (是的,我知道网上有分拣机,只是试图培养我的编程技巧。)      我的问题是如何修改我的程序,以便当用户填充数组时,程序会自动对数字进行排序,而无需用户点击"输入"或使用循环检查-1或0?这个程序满足了我的需求,但我在考虑现实世界的用户。我试着寻找答案,但也许我没有正确地写出我的问题。我希望我准确地描述了我的问题,如果您有任何建议请告诉我,谢谢。

这是我的代码。

package sort_numbers_in_ascending_order;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("How Many Numbers Do You Want to Sort? ");
        int size  = input.nextInt();
        double[] newArr = new double [size];
        System.out.print("Enter " + size + " Numbers to Sort: ");

        for(int input_array = 0; input_array<size; input_array++) {
        //assigns values to array.
            newArr[input_array] = (double)input.nextDouble();
        }

        for(int enter_number = 0; enter_number < size; enter_number++) {
        //init. enter_number to 1,                                                                   
            // while enter_number is less than size
            for(int sort_num = 1; sort_num < size; sort_num++) {       
            // of array, processes through loops, increments
                //for loop sorts each index in array by processing 
                //each index through if loop.   
                if (newArr[sort_num] < newArr[sort_num-1]) { 
                //if an index is less than its neighbor on 
                    //r.h.s, swap values in indexes.
                    double swapNum = (double)newArr[sort_num];
                    newArr[sort_num] = newArr[sort_num-1];
                    newArr[sort_num-1] = swapNum;
                }
            }
        }
        System.out.println("Here are the Sorted Numbers: ");

        for (int printNum=0; printNum<size; printNum++) {
            System.out.print(newArr[printNum] + " ");//prints each index
        }
        System.out.println();
    }
}

1 个答案:

答案 0 :(得分:0)

他们必须至少按一次回车键输入输入。

  1. 也许只是让他们输入要排序的数字,而不是最初说多少。这将要求您动态增长数字列表而不是固定大小的数组。

  2. 我知道你正在学习,但是像你一样对数组进行排序的表现非常糟糕,如果不是作业,最好的排序方法是使用Collections.sort()