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

如何编写Java函数,两变量运算等于第三变量时返回对应数学运算符

代码问题分析与修正方案

原代码存在的核心问题

  • 方法定义不符合需求:需求要求实现接收三个int参数、返回String的mathFunction函数,原代码将逻辑写在参数为String数组的main方法中,且声明的num1/num2/num3未赋值,无法通过编译。
  • 判断逻辑错误:使用else if分支判断,只要有一个运算符合条件就会跳过后续判断,无法返回多个符合要求的运算符。
  • 缺少除法异常处理:未校验除数为0的情况,直接做除法会抛出ArithmeticException运行时异常。
  • 基础语法错误:存在public static String.valueOf(nums)这类非法语法,最后输出语句缺少分号。

修正后完整代码

public class MathOperation {
    public static String mathFunction(int a, int b, int target) {
        StringBuilder result = new StringBuilder();
        // 校验加法
        if (a + b == target) {
            result.append("+");
        }
        // 校验减法
        if (a - b == target) {
            result.append("-");
        }
        // 校验乘法
        if (a * b == target) {
            result.append("*");
        }
        // 校验除法,先处理除数为0的情况,当前默认仅匹配整数整除场景
        if (b!= 0 && a % b == 0 && a / b == target) {
            result.append("/");
        }
        // 无符合条件的运算符返回None
        return result.length() == 0? "None" : result.toString();
    }

    public static void main(String[] args) {
        // 测试示例
        System.out.println(mathFunction(4,2,6)); // 输出 +
        System.out.println(mathFunction(2,2,4)); // 输出 +*
        System.out.println(mathFunction(7,1,12)); // 输出 None
    }
}

实现说明

  • 用StringBuilder拼接所有符合条件的运算符,满足多匹配场景的需求。
  • 所有判断都用独立的if而非else if,确保每一种运算都会被校验。
  • 除法判断新增了b!=0和a%b==0的校验,避免除数为0异常,同时保证仅整数整除的场景会匹配到除法运算符;如果需求允许非整除的整数除法(比如5/2=2匹配target=2),可以去掉a%b==0的判断条件。

内容的提问来源于stack exchange,提问作者Daniyella

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 08:15:03