能否用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
相关产品推荐
相关产品推荐

