You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

有没有更简洁的方式编写这段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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:39:02