• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Quiz - Antworteingabe soll 3mal möglich sein mit do-while-Schleife

blackybaby

New member
Hallo zusammen

Bin Java am lernen und hab hier eine Aufgabe vor mir liegen in der ich ein Quiz in html erstellen soll und dazu ein javasript machen soll das mir dann sagt ob die Antwort richtig ist oder nicht. Es soll aber mit einer fußgesteuerten Schleife gemacht werden. Also folgendermassen: Solange variable count kleiner gleich 3 ist UND die Variable eingabe ungleich der variablen antwort ist, soll die Schleife ausgeführt werden. Wenn die Antwort falsch ist soll ausgegeben werden "Leider falsch" und im nächsten Fenster soll die Frage nochmal erscheinen, allerdings davor soll stehen der wievielte Versuch es ist. Nach 3maliger falsch eingabe soll erscheinen "3mal falsch" und dann soll es zur nächsten Frage übergehen.

Dies klappt bei mir leider irgendwie nicht. Versteh aber nicht wo ich den Fehler drin hab. Kann mir da jemand von euch helfen? Würd mich sehr freun.
Code:
<script type="text/javascript">
function schreibwas() {
	/*----erste Frage-----*/
	var eingabe1 = prompt("Skript-Eingabeaufforderung: Wie heißt sein Ehemann?","");
	var antwort1 = "Paul Reeves";
	var ergebnis1;
	eingabe1 == antwort1 ? ergebnis1 = "Richtig" : ergebnis1 = "Leider falsch";
	document.getElementById("fragenr1").innerHTML = "Frage 1:";
	document.getElementById("ergebnis1").innerHTML = ergebnis1;
	document.getElementById("richtigeantwort1").innerHTML = "Paul Reeves";
	var count = "1";
do {
count < 3 && eingabe1 != antwort1;
alert("Leider falsch");
count++;
prompt(+ count + ". Versuch: Wie heißt sein Ehemann?","");
 count == 3 && eingabe1 != antwort1;
 alert("3mal falsch");
}
while (count <= 3);}
	
	/*---- Ende erste Frage ----*/

LG
blackybaby
 
Dies klappt bei mir leider irgendwie nicht.
Was genau klappt denn nicht? Meine Wahrsagekugel ist gerade beim Polieren.

PS. ternäre Operatoren werden anders benutzt:
Code:
var ergebnis1 = eingabe1 === antwort1 ? "Richtig" : "Leider falsch";
 
Also folgendes:

Wenn ich das Quiz starte kommt die erste Frage. Wenn ich diese falsch eingebe kommt das alert Fenster mit der Ausgabe Leider falsch! Schreibt dann im nächsten prompt Fenster 2. Versuch plus die Frage. Wenn ich dann die Antwort wieder falsch eingebe erscheint 3mal falsch, danach leider falsch und danach kommt im prompt Fenster 4. Versuch statt 3. Versuch bei Falscheingabe wieder 3mal falsch, danach leider falsch und dann gehts weiter zur nächsten Frage. Selbst wenn ich die Antwort richtig eingebe kommt es so als hätte ich die Antwort falsch eingegeben

Hier kann man es auch ausprobieren:
http://bienchen-styles.lima-city.de/SGD Kurs/Einsendeaufgabe JSC01A/Quiz Ross Anthony.html
 
Zuletzt bearbeitet:
Danke für deine Hilfe. Hab nun gefunden wie ichs mach. Zumindest funktioniert es nun etwas besser. Allerdings ist noch ein Fehler drin. Er zeigt mir nach der 3. falschen Eingabe nicht 3mal falsch an.

Hier mein abgeänderter Code:

Code:
var count = 1;
do {
	if (eingabe1 == antwort1) break;
	
	if 
(count < 3 && eingabe1 != antwort1);
alert("Leider falsch");
count++;
prompt(+ count + ". Versuch: Wie heißt sein Ehemann?","");
continue;
if (count == 3 && eingabe1 != antwort1);
alert("3mal falsch");
break;
} while (count <= 2);
 
Zuletzt bearbeitet:
Danke vielmals für deine Hilfen, die haben mir einiges weitergeholfen. Habs nun hinbekommen.

Hier nun die richtige do-while-Schleife:

Code:
/*----do-while-Schleife----*/
	var count = 1;
do {
	if (eingabe1 == antwort1)
	{ break;}
	
	if 
((count < 3) && (eingabe1 != antwort1)) {
alert("Leider falsch");
count++;
prompt(+ count + ". Versuch: Wie heißt sein Ehemann?","");
continue;}
if ((count == 3) && (eingabe1 != antwort1)) {
alert("3x falsch")
break;}

} while (count <= 3);
/*----Ende do-while-Schleife----*/
 
Du weißt schon, dass du die Eingabe nirgends speicherst... den Rückgabewert von prompt() musst du in der Variable eingabe1 speichern.

PS: Du solltest dringend an deinem Codestil arbeitet - das ist ja kaum zu lesen...
 
Zurück
Oben