请求协助将Java数组升序排序程序拆分为多个方法
拆分后的代码实现
下面是拆分后的代码,将输入获取和排序逻辑拆分为独立方法,同时优化了原代码中不必要的double类型循环变量问题:
import java.util.Scanner; import java.util.InputMismatchException; class ArrayProgram { // 获取用户输入的10个数字,返回数组 private static double[] getInputArray() { final int SIZE = 10; double[] num = new double[SIZE]; Scanner scan = new Scanner(System.in); System.out.println("Enter array elements:"); for (int i = 0; i < SIZE; i++) { num[i] = scan.nextDouble(); } scan.close(); return num; } // 对传入的数组进行升序排序(冒泡排序) private static void sortAscending(double[] arr) { int size = arr.length; double temp; for (int i = 0; i < size; i++) { for (int j = i + 1; j < size; j++) { if (arr[i] > arr[j]) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } } public static void main(String[] args) { try { double[] numArray = getInputArray(); sortAscending(numArray); System.out.print("Array Elements in Ascending Order: "); for (int i = 0; i < numArray.length - 1; i++) { System.out.print(numArray[i] + ", "); } System.out.print(numArray[numArray.length - 1]); } catch (InputMismatchException e) { System.out.println("Error! Please enter valid numbers."); } catch (Exception e) { System.out.println("Error!"); } } }
关键改动说明
- 拆分出
getInputArray()方法:专门负责处理用户输入,创建并填充数组,职责单一,便于维护。 - 拆分出
sortAscending()方法:把原代码中的冒泡排序逻辑独立出来,接收数组参数并完成排序,该方法可以复用在其他需要排序的场景。 - 优化了变量类型:将原代码中用于循环和数组长度的
double类型改为int,避免频繁的强制类型转换,代码更简洁安全。 - 细化异常捕获:新增
InputMismatchException捕获,能更精准地提示用户输入非法数字的错误,提升用户体验。
内容的提问来源于stack exchange,提问作者Qurthala
相关产品推荐
相关产品推荐

