【发布时间】:2021-09-16 18:46:29
【问题描述】:
我正在编写一个将数组中的数字相加并求和的代码。但是,如果一个数字是 13,则跳过该数字及其后面的数字。但是,我无法让我的 main() 方法将参数输入到我为执行此任务而创建的方法中。
我目前的语法是:
public static int sum13(int[] nums) {
int sum = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] ==13 || nums[i]-- == 13) {
continue;
} else {
sum += nums[i];
}
return sum;
}
}
public static void main(String[] args) {
System.out.println(sum13([1, 2, 2, 1]));
System.out.println(sum13([13, 1, 2, 13, 3, 3]));
}
}
在System.out.println 行,我收到错误消息,
The method sum13(int[]) in the type A3 is not applicable for the arguments (int, int, int, int)
有谁知道如何解决这个错误?
【问题讨论】:
-
[1,2,3] 不是您创建整数数组的方式。纠正一下,你会没事的
-
你为什么不使用可变参数呢?
sum13(int... nums)然后sum13(1,2,3,4)等等。 -
还要想想
nums[i]-- == 13是什么意思。我假设您想跳过“13 之后的数字”......但是nums[i]--是否代表下一个数字? (提示:取表达式 appart,即你可以这样写:int x = nums[i]; x--; if(x ==13) ...-x指的是什么数字?) -
您当前的语法错误。你猜到那个语法了吗?我不认为 stackoverflow 是学习 Java 语法的地方。您是否尝试在 Internet 上搜索 java int 数组初始化?
标签: java arrays loops sum parameter-passing