2016-03-30 8 views
0

Ich habe den folgenden Code für Javascript, und was ich tun möchte, ist im Grunde die Zahl 1 verdoppeln, und basierend auf Benutzereingaben weitermachen. Der ganze Code funktioniert, außer für meine for-Schleife. Außerdem habe ich versucht, Leerzeichen für die "Schritte" zu setzen, aber egal, wie viele Leerzeichen ich in die document.write-Anweisung geschrieben habe, sie spiegelt sich nicht in der Webseite wider. Vielen Dank für die Hilfe im VorausKann nicht herausfinden, warum die Zahl nicht inkrementieren

var num=1; 
function iterations() 
{ 
    document.write("<b>Sequence of numbers up to iteration number: </b>"+numIterations+"<br>"); 

    for(var i=1;i<=numIterations;i++) 
    { 



     var total=num*2; 
     if(numIterations<10) 
     { 
      document.write("<b>STEP "+i+":</b>"+" "+" "+" "+num+"*2="+total+"<br>"); 
     } 
     else 
     { 
      document.write("<b>STEP "+i+":</b>  "+num+"*2="+total+"<br>"); 
     } 
     num*2; 


    } 



} 
var numIterations= prompt("Please enter the upper limit\n\nDo NOT exceed 30"); 
if(numIterations==null||numIterations>30) 
{ 

    document.write("User enter an invalid (out of range) value"); 
} 
else 
{ 
    iterations(); 
} 
+0

Entfernen Sie die var vor ** Gesamt ** es wird gelöscht und eine neue Variable jedes Mal insgesamt genannt erklärt. –

+0

was ist der wert von numIterations? ist es ein Array eine Nummer? Was ist der Standardwert davon? –

+0

Wie sollte die Sequenz aussehen, wenn Sie zum Beispiel "3" eingeben? – John

Antwort

1

müssen Sie Ihr num Variable *= so es mal es jedes Mal, wie im Moment halten Sie es mit der gleichen Nummer ersetzt daher nicht funktioniert - einfach Fehler also keine Sorgen zu machen.

Die folgenden Werke:

var num = 1; 
 
function iterations() 
 
{ 
 
    document.write("<b>Sequence of numbers up to iteration number: </b>"+numIterations+"<br>"); 
 

 
    for(var i=1;i<=numIterations;i++) 
 
    { 
 
     
 
     var total=num*2; 
 
     if(numIterations<10) 
 
     { 
 
      document.write("<b>STEP " + i +":</b>"+" "+" "+" "+num+"*2="+total+"<br>"); 
 
     } 
 
     else 
 
     { 
 
      document.write("<b>STEP " + i +":</b>"+num+"*2="+total+"<br>"); 
 
     } 
 
     num*=2; 
 
    } 
 
} 
 
var numIterations= prompt("Please enter the upper limit\n\nDo NOT exceed 30"); 
 
if(numIterations==null||numIterations>30) 
 
{ 
 

 
    document.write("User enter an invalid (out of range) value"); 
 
} 
 
else 
 
{ 
 
    iterations(); 
 
}

+0

das schien zu funktionieren, danke! Nun, mein anderes Problem ist, dass die Leerzeichen, die ich pro "STEP 1:" versucht habe, nicht so erscheinen, wenn ich die Webseite lade. Ich möchte die Variable num mit jeder Iteration von num ausrichten. – Sam

1

Sie haben einen Fehler auf:

die Zeile, die sagt:

num*2; 

es

num*=2; 

Verwendung diesen Code mit

ersetzen, gleich wie oben mit der obigen Zeile geändert zu num * = 2;

var num=1; 
function iterations() 
{ 
    document.write("<b>Sequence of numbers up to iteration number: </b>"+numIterations+"<br>"); 

    for(var i=1;i<=numIterations;i++) 
    { 



     var total=num*2; 
     if(numIterations<10) 
     { 
      document.write("<b>STEP "+i+":</b>"+" "+" "+" "+num+"*2="+total+"<br>"); 
     } 
     else 
     { 
      document.write("<b>STEP "+i+":</b>  "+num+"*2="+total+"<br>"); 
     } 
     num*=2; 


    } 



} 
var numIterations= prompt("Please enter the upper limit\n\nDo NOT exceed 30"); 
if(numIterations==null||numIterations>30) 
{ 

    document.write("User enter an invalid (out of range) value"); 
} 
else 
{ 
    iterations(); 
} 
+0

Das ist kein Syntaxfehler. – Xufox

+0

Der Unterschied ist, dass dies ein _semantic_ Fehler ist, kein syntaktischer Fehler. Bei einem Syntaxfehler konnte ein Programm oder Skript nicht einmal geparst und ausgeführt werden, bei einem semantischen Fehler läuft jedoch alles gut, _aber nicht wie vorgesehen_. – Xufox

Verwandte Themen