2013-02-28 57 views
0

我在學校裏有一個任務,我們應該從promt中獲取一個文本字符串,然後讓一個警報打印文本字符串10次。但是我們必須使用for循環。但是,即使我閱讀了涵蓋此的所有頁面,但似乎無法使其發揮作用。用for循環重複消息

function buttonAction7() { 
    var someMsg = prompt("Write something");  
    for(var i = 0; i < 10; i++){ 
     someMsg+someMsg; 
    } 
    alert(someMsg); 
} 

回答

5

聲明:

someMsg+someMsg; 

實際上並沒有做任何,它只是返回一個邏輯值。你可能會想這個值分配給的東西,如:

someMsg = someMsg + someMsg; // Notice assignment operator, we're now actually modifying the value of someMsg 

如果你想建立一個字符串消息10倍,你可能會想要更多的東西一樣:

var someMsg = prompt("Write something"); 
var msg = ''; 

for(var i = 0; i < 10; i++) 
{ 
    msg += someMsg + '\n'; // Add a line break after each iteration 
} 

window.alert(msg); 
+0

不要教新程序員省略柯利括號請:( – jbabey 2013-02-28 21:04:12

+0

@jbabey! - 嘿好對不起 – 2013-02-28 21:05:25

+0

多謝@Mike克里斯滕森 – user1394799 2013-03-02 16:41:38

2

如果我明白你在問什麼,你想讓警報在相同的警報窗口中連續10次顯示字符串? (如「寫東西寫東西寫東西......」):

如果這是正確的,那麼你的問題是你的計算在你的for循環。你只需將兩個字符串加在一起,但對結果無所作爲。您需要保存的結果返回給someMsg變量在每次循環迭代,就像這樣:

var someMsg = promt("Write something"); 
var output = ""; 

for(var i=0; i<10; i++) { 
    output = output + someMsg; 
} 

alert(output); 

你看如何輸出+ someMsg的結果被保存回在每次迭代變量輸出。你也可以這樣寫這樣的短手:

output += someMsg; 
+1

請注意,這樣你最終將得到1024個原始字符串的副本,而不是10個副本。一個單獨的輸出緩衝區 – 2013-02-28 21:13:55

+0

這絕對是c orrect。我編輯了我的答案來證明這一點。 Mike的第一個答案是準確的,因爲他已經在使用單獨的輸出緩衝區。 – mst1228 2013-02-28 23:55:03

0

試試這個。

var someMsg=prompt("Write Something"); 


var i; 

for(i=0;i<10;i++){ 
    alert(someMsg); 
} 
+0

這不回答問題+你做了一個倒循環的複雜的事情 – Weedoze 2016-11-09 07:35:01

+0

這是怎麼回事@Weedoze? – nomar09 2016-11-09 09:33:14

+0

您正在循環中使用'prompt',正如我所說*爲什麼反向循環從9開始到0 *? – Weedoze 2016-11-09 09:36:57