在for循环里面数据已经录入进去了,为什么循环外面遍历的时候,是空呢

 我来答
liuyang054
推荐于2018-03-26 · TA获得超过9093个赞
知道大有可为答主
回答量:5317
采纳率:78%
帮助的人:5322万
展开全部

看了下你的这个代码,  你就是想把第一个数组中不是0的去掉,然后用剩下的数字赋值到一个新的数组中去。  你的逻辑完全都是错的。 至于原因我就懒得说了, 下面贴出正确代码。

public class Test {
public static void main(String[] args) {
int oldArr[] = { 1, 3, 4, 0, 6, 3, 0, 0 };
int num = 0;
for (int n = 0; n < oldArr.length; n++) {
if (oldArr[n] != 0) {
num++;
}
}
int newArr[] = new int[num];
int count = 0;
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
newArr[count] = oldArr[i];
System.out.print(newArr[count] + "  ");
count++;
} else {
continue;
}
}
System.out.println();
for (int j = 0; j < newArr.length; j++) {
System.out.print(newArr[j] + "  ");
}
}
}

liangyun171
2016-05-06 · TA获得超过650个赞
知道小有建树答主
回答量:595
采纳率:50%
帮助的人:389万
展开全部
你把每次循环的i和m输出就知道了。
在每次循环过后,你的判断条件,也就是oldarr[i]!=0里的i永远都是0,然后下一步改变的永远是a[0]的值.而数组中其他的值因为没有赋值,而int型数组默认为0,就成了你下面输出的newarr结果了,你观察下,newarr的的第一个数是oldarr[mun-1];
还有,newarr的length不用-1;
具体怎么改你自己在琢磨下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式