return n为啥是错的啊?代码为啥不能执行?、??代码:找到数组中的0;替换成1;返回找到0的个数

public class Test03 {
public static void main(String[] args) {
int []shuzu={23,20,31,504,801};
shuchu(shuzu);
int n=find(shuzu);
System.out.println("0的个数n:"+n);
shuchu(shuzu);
}
public static int find (int []group){
for(int i=0;i<group.length;i++){
int n=0;
if(group[i]==0){
group[i]=1;
n++;
}
}
return n;
}
public static void shuchu(int []group){
for(int i=0;i<group.length;i++){
System.out.print(group[i]+" ");

    }System.out.println();
}

}

int n=0 应该放到循环外边?

变量的作用域问题,n的作用域在for循环内

return n时n必须在find函数的作用域内。当你把n写在for循环外时,return n; n始终为0,那么你就该检查你的循环条件以及if判断条件了,比如group数组的元素个数为0,或者group数组中没有值为0的元素值。