用for循环重复消息

问题描述:

我在学校里有一个任务,我们应该从promt中获取一个文本字符串,然后让一个警报打印文本字符串10次。但是我们必须使用for循环。但是,即使我阅读了涵盖此的所有页面,但似乎无法使其发挥作用。用for循环重复消息

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

声明:

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

如果我明白你在问什么,你想让警报在相同的警报窗口中连续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

试试这个。

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