2012-04-21 173 views
0

我必須創建一個while循環顯示1-20的整數,但每行只有5個整數。 我無法獲得每行5個整數部分。什麼是最好的方式來做到這一點?Javascript雖然循環整數

+0

有你連這個嘗試自己? – elmigranto 2012-04-21 03:09:42

+0

是的,但不像你擁有它的方式。正如你可能已經注意到我的問題,我現在的編碼是相當基本的 – 2012-04-21 03:37:04

+1

我在問,因爲張貼你的代碼片段可能會更好地從學習的角度看。你將能夠理解你犯了哪些錯誤,以後如何避免錯誤等。在類似的「你好 - 世界」的例子中,這可能不是那麼明顯,但海事組織總是更好地發佈你自己做的東西。 – elmigranto 2012-04-21 12:42:37

回答

0

下面是建立一個字符串,並顯示其結果一個警告框的解決方案。

var i = 0, result = ""; 

while (i++ < 20) { 
    result += i + " "; 

    // check to see if we're at 5/10/15/20 to add a new-line 
    if (i % 5 === 0) { 
     result += "\n"; 
    } 
} 

alert(result); 

的jsfiddle測試:http://jsfiddle.net/willslab/KUVkX/3/

+0

我很少清理代碼。感謝您接受,如果您對代碼有任何疑問,請告知我們。 – 2012-04-21 17:35:45

0

你可以做...

if (! (i % 5)) { 
    // Create new line. 
} 

jsFiddle

1

檢查它是否是5之後的下一個項目,如果當前項目不是第一個項目。如果是,也打印換行符。例如:

for(var i = 1; i <= 20; i++) { 
    print(i); // Or however you're outputting it 

    if(i % 5 === 1 && i > 1) { 
     print('\n'); 
    } 
} 
0

看到沒有while循環在以前的答案=)

function generateLine(start, nElements, separator) { 
    var i = start; 
    var range = []; 
    while (range.length < nElements) range.push(i++); 
    return range.join(separator) + '\n'; 
} 

function generate(start, end, elementsInLine, inlineSeparator) { 
    var lines = []; 
    while (start < end) { 
    lines.push(generateLine(start, elementsInLine, inlineSeparator)); 
    start += elementsInLine; 
    } 

    return lines.join(''); 
} 

console.log(generate(1, 20, 5, ' ')); 
+0

這是一個不錯的解決方案,我也想寫一個通用函數。雖然我不確定這很容易理解。 – 2012-04-21 17:38:13