2017-02-27 4 views
-2

Ich versuche, es zu machen, so dass ich dieses Programm mit Ausgang verlassen kann, selbst wenn jemand verläßt Zurück betritt, verläßt etc. Ich habe versucht, es am Ende der Umsetzung var Eingabe am Anfang der Zeichenfolge und am Ende der Zeichenfolge in der Anweisung "} while" und es immer noch nicht zum Funktionieren. Weiß jemand wo ich es hinstellen soll?Wo gebe ich zurück? ToLowerCase(); in diesem Programm, um es auch wenn ich EXIT machen verlassen setzen

<!DOCTYPE html> 
<html> 
<head> 
<title>Project 1 – Michael Fiorello</title> 
</head> 
<body> 
<h1>Robot Speak</h1> 
<script> 
    do{ 
    var input = prompt ("Please enter 1, 2, 3, or exit.");{ 
    if (input == "1") 
     { 
      alert ("THANKS!") 
     } 
    else if (input == "2") 
     { 
     alert ("COOL!") 
     } 
    else if (input == "3") 
     { 
     alert ("AWESOME!") 
     } 
    else if (input == "exit") 
     { 
     alert ("Okay") 
     } 
    else 
     { 
     alert ("You need to enter something") 
     console.warn("You need to enter something"); 
     } 
     } 
     }while(input != "exit") 
</script> 
</body> 
</html> 
+3

Möchte die Sprache zu sehen. 'Var input = (Eingabeaufforderung ("...") || "") .tolowercase()' – nnnnnn

Antwort

1
else if (input.toLowerCase() == "exit") 
{ 
    alert ("Okay") 
} 

Wie bereits in den Kommentaren aus, wenn der Benutzer die Eingabeaufforderung abbricht, wird das Ergebnis null sein. Um diesen Fall zu fangen, sollten Sie auch für diesen Wert testen vor kommen auf der Linie i oben schrieb:

if (input == null){ 
    handleCancel(); 
} 
... 
else if (input.toLowerCase() == "exit") 
{ 
    alert ("Okay") 
} 

Falls Sie „exit“ wollen und drücken Sie auf cancel als Programmabbruch behandelt, Sie beginnen Prüfung für diesen Fall:

var goOn = true;

while(goOn){ 

    var input = prompt ("Please enter 1, 2, 3, or exit."); 
    if (input == null || input == "exit") 
    { 
     goOn = false; 
     // handle cancel 
    } 
    else if (input == "1") 
     { 
      alert ("THANKS!") 
     } 
    else if (input == "2") 
     { 
      alert ("COOL!") 
     } 
    else if (input == "3") 
     { 
      alert ("AWESOME!") 
     } 
} 
+0

Dies würde eine Typeerror geben, wenn der Benutzer die Eingabeaufforderung abgebrochen. Außerdem gibt es eine andere Stelle im Code, die auf "exit" testet. – nnnnnn

+0

Das stimmt, er hat nur gefragt, wo der Funktionsaufruf steht. Ich werde die Antwort trotzdem aktualisieren – Psi

+0

Danke für die Hilfe. Ich frage meinen Professor, ob er den einzigen Weg zum Ausstieg haben will, indem ich ihn einlege oder nicht, bevor ich diesen Teil repariere. – TheShadowGamer

0

toLowerCase() kann nach der Nullüberprüfung aufgerufen werden (das heißt, wenn die Eingabeaufforderung aufgehoben wird), und wenn jeder Fall unempfindliche Vergleiche stattfinden.

die Menge der Vergleiche zu reduzieren, können Sie auch die erforderliche Reaktion beim Auftreffen auf eine Endlosschleife mit einer Pause verwenden.

Sie haben auch hinzugefügt einen zusätzlichen nicht benötigten Block, nach Aufforderung starten. Dies kann entfernt werden.

while (true) { 
    var input = prompt("Please enter 1, 2, 3, or exit."); 
    if (input == null){ 
     // Handle failure to specify a value 
    } else if (input == "1") { 
     alert("THANKS!"); 
    } else if (input == "2") { 
     alert("COOL!"); 
    } else if (input == "3") { 
     alert("AWESOME!"); 
    } else if (input.toLowerCase() == "exit") { 
     alert("Okay"); 
     break; 
    } else { 
     alert("something else"); 
     console.warn("You need to enter something"); 
    } 
} 
+0

Dies wird auch einen Fehler hat, wenn der Benutzer die Eingabeaufforderung abbricht. Außerdem wird immer toUpperCase aufgerufen, was ein Overhead ist, wenn meistens Zahlen erwartet werden. Kein Grund, es jedes Mal anzurufen ... – Psi

+0

@Psi Danke. Ich habe aktualisiert, um dies zu berücksichtigen. –

+0

Beobachten Sie die Obszönitäten. Lesen Sie die Richtlinie ["Be Nice"] (http://stackoverflow.com/help/be-nice). –

Verwandte Themen