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

能否用if-else实现sumDouble问题?代码报.class错误如何解决?

sumDouble 函数的错误分析与修复

题目要求

给定两个int类型的值,返回它们的和;如果两个值相等,则返回它们和的两倍。示例:

  • sumDouble(1, 2) → 3
  • sumDouble(3, 2) → 5
  • sumDouble(2, 2) → 8

你的代码与问题

你尝试用if-else实现该功能,写出了这段代码:

public int sumDouble(int a, int b) {
  if (int a == int b){
   return sum (int a * int b);
 } else {
   return sum (int a + int b);
 };
}

现在代码第3行出现“.class”错误,同时你的思路(相等时返回积)也不符合题目要求,下面逐一说明:

错误原因与修复步骤

1. 为什么会出现“.class”错误?

Java里,变量仅在声明时需要指定类型(比如方法参数里的int a),后续使用变量时不能重复写类型。你在if条件里写int a == int b,编译器会把int a理解为试图访问int类的a属性,但int是基本数据类型,没有对应的类属性,因此抛出和.class相关的错误。

2. 代码里的其他问题

  • 不存在名为sum的方法,你不需要调用它,直接计算结果返回即可。
  • 你的逻辑不符合题目要求:题目要求相等时返回和的两倍(即(a+b)*2),而不是两个数的积。

修正后的正确代码

public int sumDouble(int a, int b) {
    if (a == b) {
        return (a + b) * 2;
    } else {
        return a + b;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:24:58