Java方法返回值异常:判断数值相等逻辑报错求助
问题排查与修正
你的代码判断逻辑是正确的,但返回值相关的定义完全不符合需求,导致返回结果不是预期的"A"/"B"/"C",具体问题如下:
核心错误点
- 方法返回值类型错误:需求要求返回字符串类型的"A"/"B"/"C",但你定义的方法返回类型是
int,最终返回的是字符对应的ASCII码值(比如'A'的ASCII码是65),不是目标字符串。 - 变量类型与赋值错误:你将A/B/C定义为
int类型,并用'A'这类字符字面量赋值,Java中'A'是char类型,赋值给int会自动转换为对应的ASCII数值,这和返回字符串的需求完全不匹配。
修正后的代码
public static String checkNumbers(int x, int y, int z) { if((x == y) && (y == z)) { return "A"; } else if ((x == y) || (x == z) || (y == z)) { return "C"; } else { return "B"; } }
说明
- 将方法返回类型从
int改为String,匹配返回字符串的需求。 - 直接返回字符串字面量
"A"/"B"/"C",无需额外定义冗余变量,简化代码结构。 - 原有判断逻辑完全正确:先判断三个数值全相等(返回A),再判断至少两个数值相等(返回C),最后剩下的情况就是所有数值都不相等(返回B)。
内容的提问来源于stack exchange,提问作者Yeetium
相关产品推荐
相关产品推荐

