2013-02-28 7 views
0

J'ai une tâche à l'école où nous devrions attraper une chaîne de texte prise d'un promt, puis laisser une alerte imprimer la chaîne de texte 10 fois. Mais nous devons utiliser une boucle for. Mais je n'arrive pas à le faire fonctionner même si j'ai lu toutes les pages couvrant cela.Répétez le message avec la boucle for-

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

Répondre

5

La déclaration:

someMsg+someMsg; 

ne fait qu 'faire quoi que ce soit, il retourne juste une valeur logique. Vous voudrez probablement attribuer cette valeur à quelque chose, comme:

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

Si vous voulez construire une chaîne avec le message 10 fois, vous voudrez probablement quelque chose comme:

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

Ne pas enseigner le nouveau programmeur d'omettre Curley accolades s'il vous plaît :( – jbabey

+0

@jbabey -.! Heh ok désolé –

+0

Merci un bouquet Christensen – user1394799

2

Si je comprends ce que vous demandez, vous voulez que l'alerte affiche la chaîne 10 fois dos à dos dans la même fenêtre d'alerte? (comme "Write somethingWrite somethingWrite something ..."):

Si cela est correct alors votre problème est votre calcul dans votre boucle for. Vous ajoutez simplement les deux chaînes ensemble, mais ne faites rien avec le résultat. Vous devez enregistrer le résultat à la variable someMsg sur chaque itération de la boucle, comme ceci:

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

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

alert(output); 

Vous voyez comment le résultat de la production + someMsg est en cours d'enregistrement Retour à la sortie variable à chaque itération. Vous pouvez également écrire cette petite main comme ceci:

output += someMsg; 
+1

Notez que de cette façon, vous obtiendrez 1024 copies de la chaîne d'origine, et non 10 copies. un tampon de sortie séparé –

+0

C'est certainement c orrect. J'ai édité ma réponse pour le montrer. La première réponse de Mike est exacte car il utilisait déjà le tampon de sortie séparé. – mst1228

0

Essayez ceci.

var someMsg=prompt("Write Something"); 


var i; 

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

Ceci ne répond pas à la question + vous compliquez la chose en faisant une boucle inversée – Weedoze

+0

Comment ça @Weedoze? – nomar09

+0

Vous utilisiez 'prompt' dans la boucle + comme je l'ai dit * pourquoi la boucle inversée commençant à 9 et allant à 0 *? – Weedoze