2011-06-01 63 views
2

您有一个迭代超过1,000个项目的循环。你想为每四个项目添加一个换行符。这些项目是一个数组索引,索引从0开始。你怎么做?循环迭代高效

+1

你能证明你卡在哪里吗?你写了什么代码? – 2011-06-01 22:30:42

+0

你究竟是什么意思 - '你想给每四个项目添加一个换行符.' – Mahesh 2011-06-01 22:35:44

+0

''我会在接受一个肛门之前等一下:你可以打赌最终所有的答案很快会被张贴,因为有人花时间downvote每个答案迄今;必须有一些卓越的答案酝酿。“#' – sehe 2011-06-02 10:55:50

回答

-1
for (int i = 0; i < list.size(); i += 4) { 
// add to the item 
} 

上面迭代了每一个项目而不是每一个项目。

+0

为什么downvote?这个迭代每四个项目......这个问题是什么? – Brad 2011-06-01 23:13:48

+0

好吧,如果这就是我被低估的原因,那么我想我真的不在乎。一分钟后,我想有人试图告诉我,我刚刚没看到的方法存在问题。 – Brad 2011-06-01 23:25:31

+0

另外,我还以为你不能倒下,直到你有100代表?! – Brad 2011-06-01 23:26:15

-1
for(i=3;i<len;i=i+4) { // where len is the length of your array 
    ary[i]+='\n';  // use string append operator of your language. 
} 

将一个新行添加到每个第四个项目,即项目3 7,11等

EDIT

更改为满足OP的标准。

+0

出于好奇,为什么这个答案downvoted?我相信它符合OP的标准,不是吗? – 2011-06-01 23:37:03

+0

我不是神秘的downvoter,但是:这个答案 - 和@布拉德的 - 在第一个项目之后添加一个换行符,并且在那之后每四个项目*,这不同于在每个第四个*之后添加一个换行符。项目。 (提示:应该接收换行符的第一个索引是** 3 **) – 2011-06-01 23:38:02

+0

好的,我会把它放在下巴上。感谢您的解释。 ;) – 2011-06-01 23:38:47

1

FWIW:“我如何打印这些项目,四线”

for (int i = 0; i < list.size(); ++i) { 
    // you want to 'do it' with list[i] here 

    if (0 == (i+1)%4)) 
    { 
      // 'you want to add a new line' here 
    } 
} 
0

万一你真正想要问的是这里有一种方法

int nOnLine = 0; 
for (i = 0; i < 1000; i++){ 
    // print item i 
    nOnLine++; 
    if (nOnLine >= 4){ 
    // print newline 
    nOnLine = 0; 
    } 
} 
if (nOnLine > 0){ 
    // print newline 
    nOnLine = 0; 
}