// 現在有如下的一個陣列:
// int[] old={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}
// 要求將不為0的值存入一個新的陣列
int[] old={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
int[] newa= new int[18];
int j =0;
for(int i=0;i<=old.length-1;i++){
if(old[i]!=0){
newa[j]=old[i];
j++;
System.out.println("陣列元素: "+newa[j]); // 這里輸出old[i]可以 為什么newa[j]全部為0
}
uj5u.com熱心網友回復:
j++后輸出的都是一個初始化的新的陣列元素,當然是0了。你在j++之前輸出就不是0了。
uj5u.com熱心網友回復:
j++;System.out.println("陣列元素: "+newa[j]);
這兩句順序調換過來就行了
當你把第一個不為0的數放進newa下標為0的位置,但是j++之后你訪問就是從1下標開始
所以你輸出的數永遠都比你寫入的下標前一位,int型別,默認為0,所以輸出的全部都是0。
uj5u.com熱心網友回復:
哦 原來如此
uj5u.com熱心網友回復:
問題解決為啥不給分數呢- -轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/55205.html
標籤:Java SE
上一篇:有哪位大神幫幫忙,感謝!
下一篇:java大佬幫忙解答一下吧
