You need to enable JavaScript to run this app. Java调用入参为int[]的sum13方法报参数不匹配错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Java调用入参为int[]的sum13方法报参数不匹配错误如何解决

报错原因及修复方案

1. 传参报错修复

你收到的报错:

The method sum13(int[]) in the type A3 is not applicable for the arguments (int, int, int, int)

核心原因是Java不支持直接用[1,2,2,1]的格式声明数组作为方法入参,这种写法会被编译器识别为多个int类型的独立参数,和sum13要求的int[]参数类型不匹配。

正确的入参写法是显式创建int数组对象:
sum13(new int[]{1, 2, 2, 1})

修改后的main方法代码:

public static void main(String[] args) {
     System.out.println(sum13(new int[]{1, 2, 2, 1}));
     System.out.println(sum13(new int[]{13, 1, 2, 13, 3, 3}));
}

2. sum13方法逻辑修复

你现有sum13方法存在两处核心问题,无法实现需求:

  • 判断逻辑nums[i] ==13 || nums[i]-- == 13错误,nums[i]--会修改原数组的值,也无法实现“跳过13后紧跟的第一个数字”的逻辑
  • return语句写在了for循环内部,会导致第一次循环结束就直接返回结果,无法遍历整个数组

正确的实现代码如下:

public static int sum13(int[] nums) {
     int sum = 0;
     for (int i = 0; i < nums.length; i++) {
          if (nums[i] == 13) {
               // 遇到13时,跳过当前元素和后一个元素
               i++;
          } else {
               sum += nums[i];
          }
     }
     return sum;
}

验证结果

  • 输入new int[]{1, 2, 2, 1},输出结果为6
  • 输入new int[]{13, 1, 2, 13, 3, 3},输出结果为5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 06:30:04