你能不能理解为什么这段代码因为array667({6,6,2,6})而无效。但是如果对整行进行评论并取消注释现在评论的内容,那么一切正常。
坦率地说,我从http://codingbat.com/prob/p110019那里得到了这个例子。所以,这是从他们的练习中获取的。我不会发明这一点,但现在我很困惑为什么这不起作用?
public class Test {
public static void main(String[] args){
//int[] a = {6, 6, 2, 6};
//System.out.println(array667(a));
System.out.println(array667({6, 6, 2, 6}));
}
public static int array667(int[] nums) {
int count = 0;
for (int i = 0; i < nums.length-1; i++){
if (nums[i] == 6 && (nums[i+1] == 6 || nums[i+1]==7)){
count++;
}
}
return count;
}
}
答案 0 :(得分:2)
在传递内联时,您必须告诉数组的类型。
array667(new int[] {6, 6, 2, 6})
在初始化时,这是第一种情况,左侧有类型。
有关示例的清晰说明,请您点击这里
答案 1 :(得分:2)
您没有创建数组对象 -
System.out.println(array667(new int[]{6, 6, 2, 6}));