关于数组循环中取余判断提行的问题.

Auntion 2007-04-02 02:46:49
比如我现在有一个数组.


然后我循环它.每当i到达一个%10的值为0的时候就多输出\n

for(int i=0,n=array.length; i<n ;i++){

if(i%10 == 0){
System.out.print(array[i]+"\n");
}else{
System.out.print(array[i]+" ");
}

}

但是为什么输处的结果是这样.为什么在第一个数就空了一行,而最后一行则少输出一个...没搞懂..

0
0 0 1 1 1 2 4 4 4 6
6 7 7 7 7 8 8 8 9
...全文
319 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaochunhui 2007-04-02
  • 打赏
  • 举报
回复
结贴吧 搂主
zhaochunhui 2007-04-02
  • 打赏
  • 举报
回复
for(int i=0;i<array.length;i++){
if((i+1)%5==0)
System.out.print(array[i]+"\n");
else
System.out.print(array[i]);
}
这个就是你想要的了
Auntion 2007-04-02
  • 打赏
  • 举报
回复
真是谢谢大家了.这么快就解决了
Auntion 2007-04-02
  • 打赏
  • 举报
回复
楼上正确,结帖
fiore 2007-04-02
  • 打赏
  • 举报
回复
肯定是这样的输出结果
你数组的第一个元素为0,(0%10==0)当然要换行
for(int i=1,n=array.length; i<n ;i++) (改成这样试试)
zhaochunhui 2007-04-02
  • 打赏
  • 举报
回复
for(int i=0;i<20;i++){
if((i+1)%5==0)
System.out.print(" "+i+"\n");
else
System.out.print(" "+i);
}
Auntion 2007-04-02
  • 打赏
  • 举报
回复
楼上仁兄的输出是这个情况.........

0 0 0 0 1 3 3 4 5 5 6
6 6 7 7 7 7 8 9 9
shan1119 2007-04-02
  • 打赏
  • 举报
回复
是啊,这样
if(i>0 && i%10 == 0){
java_new_comer 2007-04-02
  • 打赏
  • 举报
回复
......
例如你的数组是:String s[]=new String[]{1,2,3,4,5,6,7,8,9,10};
则:s[0]=1,s[1]=2,s[2]=3.........
然后你自己想一下为什么第一行就换行了。
Auntion 2007-04-02
  • 打赏
  • 举报
回复
有什么办法解决吗?多加一个if???????

我以前是写js的.试了一下,js的解决办法是初试化的时候i=0.array.length也+1 就可以了.

但是java里面就越界了啊.......怎么解决呢?
frilly 2007-04-02
  • 打赏
  • 举报
回复
for(int i=0,n=array.length; i<n ;i++){

if(i!= 0 && i%10 == 0){
System.out.print(array[i]+"\n");
}else{
System.out.print(array[i]+" ");
}

}
// 0与10取模也为0
yeah920 2007-04-02
  • 打赏
  • 举报
回复
i=0时i%10 == 0是true

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧