我希望做以下事情:
public static int[] plusOneLengthFour(int[] arr) {
return {arr[0]+1,arr[1]+1,arr[2]+1,arr[3]+1};
}
但是在编译时,我收到以下错误:
TestClass.java:5: error: illegal start of expression
return {arr[0]+1,arr[1]+1,arr[2]+1,arr[3]+1};
这里有什么问题?
答案 0 :(得分:5)
您只需要在return语句中添加new int[]
即可进行编译。如果你只是从花括号开始,它不知道你想要什么。请注意,这将返回新数组,而原始arr
将具有相同的值。
即,
return new int[] {arr[0]+1,arr[1]+1,arr[2]+1,arr[3]+1};
答案 1 :(得分:4)
如果要修改输入数组,则无需返回任何内容:
public static void plusOneLengthFour(int[] arr) {
arr[0]++;
arr[1]++;
arr[2]++;
arr[3]++;
}
如果你想创建一个新数组,包含输入数组的前4个元素递增1,那么要使用的代码是
public static int[] plusOneLengthFour(int[] arr) {
return new int[] {arr[0] + 1, arr[1] + 1, arr[2] + 1, arr[3] + 1};
}
答案 2 :(得分:1)
您应该使用以下语句来返回数组。
return new int[] {arr[0] + 1, arr[1] + 1, arr[2] + 1, arr[3] + 1};
答案 3 :(得分:0)
我猜你需要返回你的数组,数组元素增加1.这是你如何做到的: -
public static void plusOneLengthFour(int[] arr) {
for (int i = 0; i < arr.length; i++) {
arr[i] = arr[i] + 1;
}
}
实际上你不需要返回数组。更改将反映在原始数组中。
答案 4 :(得分:0)
您可以使您的方法更灵活
public static int[] addNumberToItems(int[] array, int valueToAdd) {
for (int i = 0; i < array.length; i++)
array[i] += valueToAdd;
return array;
}
此常量返回数组的长度:
array.length