JavaScript-Programm

  • Schreibe ein Script,dass den Anwender solange auffordert den Namen einzugeben,bis er Gymgan eingibt.
    Dass sollte man mit der While-Schleife machen.
    Ich hoffe ihr könnt mir weiterhelfen.
    Vielen dank im voraus!

  • Hier ich habs schon versucht, aber es geht einfach nicht .

    <html>
    <head>
    <title> Passwort </title>
    <script type="text/javascript">
    function passwort()
    {
    var eingabe,ausgabe;
    while (eingabe="gymgan")
    {
    eingabe=window.prompt("Gib das Passwort ein","");
    if (eingabe=="gymgan")
    {
    window.alert("Das ist richtig")
    }
    else
    {
    alter=window.prompt("Gib das Passwort ein","");
    }
    }
    </script>
    </head>
    <body>
    <a href="JavaScript:passwort()"> Starte </a>
    </body>
    </html>

  • Code
    var eingabe,ausgabe;[/quote]
    Die Variablen eingabe und ausgabe werden hier zwar deklariert aber nicht definiert. Eine undefinierte Variable hat den Wert [I]undefined[/I].
    
    
    [code]while (eingabe="gymgan")


    Hier willst du die Schleife beginnen. Die while-Schleife wird ausgeführt, wenn die Bedingung wahr ist. Die Bedingung ist

    Code
    eingabe=="gymgan"


    Das prüft, ob eingabe gleich "gymgan" ist. Aber wie ich oben schon gesagt habe ist der Wert der Variablen hier undefined. Die Bedingung ist demnach falsch und die Schleife wird nie betreten.

    Der Fehler ist die falsche Bedingung.

    Fehler, Ausdruck, Erklärung nötig
    Keine Korrekturen per Privatnachricht.

    • Offizieller Beitrag

    Nochmal etwas anders erklärt:

    Zitat

    while (eingabe="gymgan")


    Die While-Schleife wird solange ausgeführt, die diese Bedingung hier wahr ist.
    So wie es jetzt dasteht, gibst du der Variable eingabe den Wert "gymnan" (weil nur einfaches =-Zeichen - Wenn du überprüfen willst, ob es gleich "gymnan" ist, musst du hier ein ==-Zeichen setzen!), was immer wahr ist (und für deine Zwecke falsch)...

    Was du hier stattdessen willst, ist ein:

    Code
    while (eingabe != "gymgan")


    Das != ist ein Ungleich-Zeichen. Die Bedingung ist also solange wahr, wie eingabe ungleich "gymnan" ist, die while-Schleife wird solange ausgeführt, bis das richtige Wort eingegeben worden ist.

    LG nif7

  • Ah, stimmt, ich habe nicht drauf geachtet, dass da sogar eine Zuweisung in der Schleife steht. In diesem Fall wird die Schleife also doch betreten, nur dass sie nie verlassen wird.

    Fehler, Ausdruck, Erklärung nötig
    Keine Korrekturen per Privatnachricht.

  • Es gibt zwei Möglichkeiten, warum du diesen Code brauchst. Entweder weil du programmieren lernen willst, oder weil es sich um Hausaufgaben handelt. In beiden Fällen würde ich dir nicht einfach so den Code aufschreiben, weil du daraus nicht lernen würdest.

    Fehler, Ausdruck, Erklärung nötig
    Keine Korrekturen per Privatnachricht.