2011-06-01 132 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; 
}