有没有更简洁的方式编写这段Java比较三个数大小的代码?
当然可以简化,这里给你两种常用的优化方案,都比你原来的多重if-else逻辑更简洁,还修复了原有代码无法处理两个数字相等且同为最大值的边界问题。
方案1:使用内置
Math.max方法(最适合3个数字的场景) Java标准库自带的Math.max()方法可以直接比较两个数字的大小,嵌套调用即可实现3个数字的最大值计算,不用手动写复杂的判断逻辑:
import java.util.Scanner; public class MyClass { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int angkaPertama, angkaKedua, angkaKetiga; System.out.print("输入第一个数字 : "); angkaPertama = sc.nextInt(); System.out.print("输入第二个数字 : "); angkaKedua = sc.nextInt(); System.out.print("输入第三个数字 : "); angkaKetiga = sc.nextInt(); // 一行代码完成最大值计算 int maxAngka = Math.max(angkaPertama, Math.max(angkaKedua, angkaKetiga)); System.out.println("最大数字 : " + maxAngka); } }
方案2:使用数组+遍历(适合后续扩展到更多数字的场景)
如果你后续可能需要判断更多数字的最大值,可以把所有输入的数字放到数组中遍历计算,扩展性更强,新增数字不用修改判断逻辑:
import java.util.Scanner; public class MyClass { public static void main(String args[]) { Scanner sc = new Scanner(System.in); // 需输入的数字总数,后续要增加判断数量仅需修改这个值即可 int totalAngka = 3; int[] daftarAngka = new int[totalAngka]; for (int i = 0; i < totalAngka; i++) { System.out.print("输入第" + (i+1) + "个数字 : "); daftarAngka[i] = sc.nextInt(); } int maxAngka = daftarAngka[0]; for (int angka : daftarAngka) { if (angka > maxAngka) { maxAngka = angka; } } System.out.println("最大数字 : " + maxAngka); } }
内容的提问来源于stack exchange,提问作者Natanael
相关产品推荐
相关产品推荐

