如何修改Java代码实现输入整数的升序排列显示?
整数升序排序问题排查与修复
问题场景
实现三个整数的升序排列时出现错误,测试案例如下:
- 测试案例1:
Enter first integer:6
Enter first integer:1
Enter first integer:5 - 测试案例2:
Case (2)
Enter first integer:9
Enter first integer:7
Enter first integer:2
原代码问题分析
给出的代码存在两个核心问题:
- 输出时机错误:排序逻辑还未执行就打印了初始输入的数值,导致排序后的正确结果无法被输出。
- 排序触发条件不全:仅当
number2 < number1 || number3 < number1时才执行排序,会漏掉很多需要排序的场景(比如number1是最小值,但number2大于number3的情况)。
原代码:
import java.util.Scanner; public class AscendingOrder { public static void main(String [] args) { Scanner input = new Scanner(System.in); System.out.print("Enter first integer: "); int number1 = input.nextInt(); System.out.print("Enter second integer: "); int number2 = input.nextInt(); System.out.print("Enter third integer: "); int number3 = input.nextInt(); // 错误:排序前就输出初始值 System.out.println("Order ascending: " + number1 + ", " + number2 + " ," + number3); int temp; // 错误:仅部分情况触发排序,逻辑覆盖不全 if(number2 < number1 || number3 < number1) { if(number2 < number1) { temp = number1; number1 = number2; number2 = temp; } if (number3 < number1) { temp = number1; number1 = number3; number3 = temp; } if (number3 < number2) { temp = number2; number2 = number3; number3 = temp; } } } }
修复后的代码
调整输出位置,移除错误的条件判断,确保排序逻辑始终执行:
import java.util.Scanner; public class AscendingOrder { public static void main(String [] args) { Scanner input = new Scanner(System.in); System.out.print("Enter first integer: "); int number1 = input.nextInt(); System.out.print("Enter second integer: "); int number2 = input.nextInt(); System.out.print("Enter third integer: "); int number3 = input.nextInt(); int temp; // 确保number1 <= number2 if(number2 < number1) { temp = number1; number1 = number2; number2 = temp; } // 确保number1 <= number3 if (number3 < number1) { temp = number1; number1 = number3; number3 = temp; } // 确保number2 <= number3 if (number3 < number2) { temp = number2; number2 = number3; number3 = temp; } // 排序完成后输出结果 System.out.println("Order ascending: " + number1 + ", " + number2 + ", " + number3); } }
修复说明
- 将输出语句移至排序逻辑之后,保证打印的是排序后的最终数值。
- 移除外层的条件判断,无论输入顺序如何,都执行完整的三步排序,确保所有输入场景都能得到正确的升序结果。
内容的提问来源于stack exchange,提问作者Rachel Flores
相关产品推荐
相关产品推荐

