2014-05-09 114 views
-5

一個循環,我需要一個大學運動與到document.write下面使用的循環方式顯示在屏幕上的樹:練習使用的JavaScript

tree

我在開始時使用的for循環,但我只打印第一行...有人可以幫助我嗎?

這是我的嘗試:

var numbers = [0, 1, 2, 3, 4] 
for (var i = 0; i <= numbers.length; i++) { 
    if (numbers [i] == 0) { 
     document.write(" * </br>"); 
    } 
    if (numbers [i] == 1) { 
     document.write(" *** </br>"); 
    } 
    if (numbers [i] == 2) { 
     document.write(" ****** </br>"); 
    } 
    if (numbers [i] == 3) { 
     document.write(" ******* </br>"); } 
    if (numbers [i] == 4) { 
     document.write("********* </br>"); 
    } 
    return 
} 

謝謝!

+0

已修復您的圖片;) –

+5

Anypancake,請顯示您嘗試過的實際代碼? –

+0

歡迎來到StackOverflow ...請閱讀[幫助頁面](http://stackoverflow.com/help),特別是關於[我如何提出一個好問題]部分(http://stackoverflow.com/help/how -to-問)。我們不是一個代碼編寫服務,並且(正如Niet已經強調的那樣),我們期望人們展示他們已經嘗試過的東西 – freefaller

回答

1

這是我對你的代碼...

<html> 
<head> 
<script type="text/javascript" language="javascript"> 

document.write("<center>"); //write a center tag to make sure the pyramid displays correctly(try it without this step to see what happens) 
for(var i = 0; i <= 10; i++) //a loop, this counts from 0 to 10 (how many rows of stars) 
{ 
    for(var x = 0; x <= i; x++)// a loop, counting from 0 to whatever value i is currently on 
    { 
     document.write("*");//write a * character 
    } 
    document.write("<br/>"); //write a br tag, meaning new line, after every star in the row has been created 
} 
document.write("</center>"); //close the center tag, opened at the beginning 

</script> 
</head> 
<body> 

</body> 
</html> 
+0

-buzzer-錯誤。在第二行打印一個帶有2顆星的三角形。 3預計。 –

+0

你可以相應地管理它我只是想一個想法.. – AshishHashCoder

+0

添加到循環:if(x == 2){x ++;} – nicael

3

我要去給你一個「golfed十歲上下」(金魚?這應該是一個東西嗎?)的代碼版本。換句話說,我能想到的最小,最隱蔽的代碼可以完成任務。您不應該使用這個,因爲你的老師無疑會問你這是什麼意思,你會不知道,但我很無聊XD

var size = 5; 
document.write("<center>"+Array.apply(0,new Array(size)).map(function(_,i) {return new Array((i+1)*2).join(" * ");}).join("<br>")+"</center>"); 

Demo

正如我所說的,不使用此:p

1
<pre><script> 
for(var i=0;i<5;i++) 
{ 
    for(var c=0;c<9;c++) 
    { 
     if(Math.abs(4-c)<=i) 
      document.write("*"); 
     else 
      document.write(" "); 
    } 
    document.write("<br />"); 
} 
</script></pre> 

它是一個簡單的版本與document.write()。唯一複雜的是Math.abs,它提供了從中間的距離。

PS:注意幻數

1

增加空間和完全可擴展的

function pyramid(lines, char) { 
    var start = 2,html = '<pre>'; 
    for (var i=lines; i--;) { 
     html += new Array(Math.floor(i+1)).join(' ') + new Array((start=start+2)-2).join(char) + '<br />'; 
    } 
    return html + '</pre>'; 
} 

document.write(pyramid(5, '*')); 

FIDDLE

1

function pyramidStar(n) { 
 
    var str = ""; 
 
    for(var i=1; i<=n; i++) { 
 
    for(var j=1; j<=n-i; j++) { 
 
     str += " "; 
 
    } 
 
    for(var k=n-i+1; k<n+i; k++) { 
 
     str += "* "; 
 
    } 
 
    for(var m=n+i; m<=2*n-1; m++) { 
 
     str += " "; 
 
    } 
 
    str += "\n"; 
 
    } 
 
    return str; 
 
} 
 

 
document.getElementById("result").innerHTML = pyramidStar(9);
<pre id="result"></pre>

星印刷金字塔的另一種方式。

0
function star(n) { 
    for (var i = 1; i <= n; i++) { 
     for (var j = i; j < n; j++) { 
      document.write("-"); 
     } 
     for (var k = 1; k <= (2 * i) - 1; k++) { 
      document.write("*"); 
     } 
     document.write("<br/>"); 
    } 

} 

//函數調用

星(9);