2016-11-13 3 views
0

Ich mache ein Programm, das ein Array von Zahlen hat und dann gibt der Benutzer einige Werte ein und klickt auf verify. der Wert, den er eingibt, muss in der Reihenfolge mit dem Zahlenfeld sein, und wenn es nicht der Benutzer ist, wird eine Warnmeldung erhalten, aber der Wert in der ersten Eingabebar entscheidet, aus welcher Nummer des Arrays der Vergleich starten soll. Wenn das Array beispielsweise Zahlen wie {2,4,6,8,10} enthält und der Benutzer 6 in die erste Eingabezeile eingibt und dann 8 und 10 in die nächsten zwei Balken eingibt, sollte er das Ergebnis erhalten. " 678 "Aber wenn er nicht die erste Zahl richtig bekommt, sagen wir, er gibt 3 ein, und da 3 nicht in der Anordnung ist, dann ist es egal, was er in die anderen Eingabebalken eingibt, er würde das Ergebnis bekommen" Es tut uns leid". Wenn der Benutzer in der ersten Eingabezeile 4 und dann in der zweiten Zeile 8 eingibt, sollte er trotzdem das Ergebnis "Sorry" erhalten, da die Reihenfolge des Arrays {4,6,8} nicht {4 ist. 8} .. Nun habe ich ein Programm gemacht, aber die Sache ist, wenn ich auf den Verify-Knopf klicke, passiert nichts:/.. hier sind meine Codes. und hier ist auch das Ergebnis ich erhalte: https://jsfiddle.net/53j19rpt/Javascript und html: Knopf funktioniert nicht

<html> 

<head> 
</head> 
<script type="text/javascript"> 
    var arr = []; 
    var t; 
    var num = 2; 
    var x = []; 
    for (var x = 0; x < 4; x++) { 
     document.getElementById("one" + x); 
    } 

    function go() { 
     for (var t = 0; t < 4; k++) { 
      x[t] = num * (t + 1); 
     } 
     for (var k = 0; k < 4; k++) { 
      if (document.getElementById("one0").value >= x[k]) 
       if (document.getElementById("one" + k).value == x[k]) 
        document.write(document.getElementById("one" + k).value); 
       else 
        document.write("Sorry"); 
     } 
    } 
</script> 

<body> 
    <input id="one0" type="text"> 
    <input id="one1" type="text"> 
    <input id="one2" type="text"> 
    <input id="one3" type="text"> 
    <input type="button" id="verifyBtn" value="verify" onclick="go()"> 
</body> 

</html> 

Antwort

0

Kontrolle dieses

for (var t = 0; t < 4; k++) { 
      x[t] = num * (t + 1); 
     } 

-Code wird hier für eine Endlosschleife geht. Der Wert von t wird im Code nicht erhöht.

+0

noch nicht funktioniert ..:/ –

+0

Ich bin nicht noch eine Ausgabe bekommen –

0

Es gibt mehrere Probleme hier:

  1. x zunächst als Array deklariert wird (dh var x = [];, aber dann sofort danach, wird als Iterator für die for-Schleife (dh for (var x = 0; x < 4; x++) {) x verwendet später. auf dem Start der Funktion go(), wenn Werte x Zuordnung, versucht es x[t] zuzugreifen, die für eine ganze Zahl nicht funktioniert also eine andere Variable in dem Iterator verwenden.

    for (var x = 0; x < 4; x++) { document.getElementById("one" + x); }

  2. In der zweiten for Schleife wird die Variable t nicht erhöht bekommt, was eine Endlosschleife verursacht. Inkrement t, nicht k.

    for (var t = 0; t < 4; t++) {

  3. Die if Aussagen haben keine Klammern, die nur die nächste Zeile bewirkt ausgeführt werden ... obwohl die beiden if Aussagen in Folge noch die Anweisung nach dem, ob Sekunde ausführen, wenn beide Bedingungen bewerten zu wahr. Wenn Sie nach dem Ausdruck if mehrere Codezeilen benötigen, müssen Sie sie in geschweifte Klammern einschließen.

Siehe nachstehendes Beispiel:

var arr = []; 
 
var t; 
 
var num = 2; 
 
var x = []; 
 
for (var h = 0; h < 4; h++) { 
 
    document.getElementById("one" + x); 
 
} 
 

 
function go() { 
 
    for (var t = 0; t < 4; t++) { 
 
    x[t] = num * (t + 1); 
 
    } 
 
    for (var k = 0; k < 4; k++) { 
 
    if (document.getElementById("one0").value >= x[k]) { 
 
     if (document.getElementById("one" + k).value == x[k]) { 
 
     document.write(document.getElementById("one" + k).value); 
 
     } 
 
     else { 
 
     document.write("Sorry"); 
 
     } 
 
    }//could have an else after this when one0's value is less than x[k] 
 
    } 
 
    console.log('done with function go()'); 
 
}
<input id="one0" type="text"> 
 
<input id="one1" type="text"> 
 
<input id="one2" type="text"> 
 
<input id="one3" type="text"> 
 
<input type="button" id="verifyBtn" value="verify" onclick="go()">

Verwandte Themen