如何解决如何简化此代码以按降序对用户输入进行排序
所以我正在做计算机科学,这是我们的工作之一,它很奏效,但是我想知道如何将它简化,因为它看起来很混乱。
import java.util.Scanner;
public class DecreasingOrder {
public static void main(String[] args) {
//get 3 user ints and display them in decreasing order
Scanner input = new Scanner(system.in);
System.out.println("Enter the first number");
int num1 = input.nextInt();
System.out.println("Enter the second number");
int num2 = input.nextInt();
System.out.println("Enter the third number");
int num3 = input.nextInt();
//sort numbers in order
if (num1 > num2 && num2 > num3) {
System.out.println(num1 + " " + num2 + " " + num3);
} else if (num2 > num1 && num1 > num3) {
System.out.println(num2 + " " + num1 + " " + num3);
} else if (num1 > num3 && num3 > num2) {
System.out.println(num1 + " " + num3 + " " + num2);
} else if (num2 > num3 && num3 > num1) {
System.out.println(num2 + " " + num3 + " " + num1);
} else if (num3 > num2 && num2 > num1) {
System.out.println(num3 + " " + num2 + " " + num1);
} else if (num3 > num1 && num1 > num2) {
System.out.println(num3 + " " + num1 + " " + num2);
}
}
}
解决方法
简化版本,使用数组并使用Arrays.sort()
对其进行排序:
Scanner input = new Scanner(System.in);
int[] nums = new int[3];
System.out.println("Enter the first number");
nums[0] = input.nextInt();
System.out.println("Enter the second number");
nums[1] = input.nextInt();
System.out.println("Enter the third number");
nums[2] = input.nextInt();
Arrays.sort(nums);
System.out.println(nums[2] + " " + nums[1] + " " + nums[0]);
,
这是另一个简化版本。它使用Java 8流。
- 创建扫描仪对象
- 提示输入三个整数。
- 从控制台输入三个数字。
- 将它们转换为Integer对象,以便可以按降序对其进行排序。
- 转换为数组。
- 并打印它们。
Scanner input = new Scanner(System.in);
System.out.println("Please enter three integers.");
System.out.println(Arrays
.toString(IntStream.generate(input::nextInt).limit(3)
.boxed().sorted(Comparator.reverseOrder())
.toArray(Integer[]::new)));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。