package Exercise;public class Exercise3 
{
public static void main(String[] args)
{
int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
zero(oldArr);
}
public static void zero(int b[])
{
int[] c=new int[20];
int j=0;
for(int i=0;i<b.length;i++)
{
if(b[i]!=0)
{
c[j++]=b[i];
}
}
for(int i=0;i<b.length;i++)
{
System.out.print(c[i]+"\t");
}
}
}
为什么在zreo方法中的c[j++]=b[i]中的j++不可以换成i呢

解决方案 »

  1.   

    int[] c=new int[20];
    c中的元素会默认为0换成i就等于复制了一遍而已
      

  2.   

    程序的意思呢是把数组B中的0元素剔除后放到数组C中  你若把J换成I  在遍历数组B的循环中  I递增两次  这样就不会遍历B中所有的元素  估计还会包数组越界异常……
      

  3.   

    呃  不好意思   看错了   把J++换成I  虽然数组B中为0的元素不会插入到C中   可C中的每个元素最初默认为0  程序最后的结果和直接输出数组B没啥区别