If-Else Problem

  • Ich wollte heute mal mit meinem ersten "Projekt" beginnen. Es soll mir alle xx Minuten etwas abfragen. (Vokabeln etc.).

    Also hab ich schonmal versucht so eine MsgBox zu erstellen die mir eine einfache Rechenaufgabe stellt und ich sie lösen muss.

    So sieht das jetzt aus:

    [autoit]

    $zahl = InputBox("Hi!", "Was ergibt 13 * 7?", "4")

    [/autoit][autoit][/autoit][autoit]

    If $zahl = 91 Then MsgBox(6, $zahl, "Richtig!")

    [/autoit][autoit][/autoit][autoit]

    If $zahl > 91 Then
    MsgBox(6, $zahl, "Du hast eine Zahl eingegeben, die größer als die Lösung ist!") ; Nur zum Testen da;
    If $zahl < 91 Then
    MsgBox(6, $zahl, "Du hast eine Zahl eingegeben, die kleiner als die Lösung ist!") ; Auch nur zum Testen da D: ;
    Else
    MsgBox(6, $zahl, "Die Antwort ist leider falsch.")
    EndIf

    [/autoit]

    (Teilweise aus Tutorials abgeschaut. Ist immerhin mein erster Versuch.)

    Will ich das ganze nun aber starten kommt 'ne Fehlermeldung.

    Error: "If" statement has no matching "EndIf" statement.

    Ich hab sogar schon versucht Beispielskripte komplett zu kopieren und einfach den Text umzuändern.
    Bringt auch nix. Speicher ich die Beispielskripte und starte sie funktionieren sie. Komplett ohne Fehlermeldung.

    Joar... Was mach ich falsch? D:

    Edit: Sorry, falls das hier schonmal gefragt wurde.

    Einmal editiert, zuletzt von Sundaydarkness (2. Juli 2012 um 12:51)

  • Der Fehler ist in Zeile 7.

    Eine If-Abfrage besteht immer aus dem Anführenden "If" und endet meistens mit einem "EndIf".
    Es geht auch ohne "EndIf", wenn es ein Einzeiler ist (wie in Zeile 3).
    Dazwischen kannst du "ElseIf" oder "Else" benutzen. Deren Funktionalität scheinst du ja zu kennen... :P
    In Zeile 7 fragst du aber wieder mit "If" ab, was eben der Fehler ist. Dort gehört ein "ElseIf" rein.

  • Diesmal so wie es eigentlich gedacht ist. Ohne den Müll dazwischen.

    [autoit]

    $zahl = InputBox("Hi!", "Was ergibt 13 * 7?")

    [/autoit][autoit][/autoit][autoit]

    If $zahl = 91 Then MsgBox(6, $zahl, "Richtig!")

    [/autoit][autoit][/autoit][autoit]

    Else
    MsgBox(0, $zahl, "Die Antwort ist leider falsch.")
    EndIf

    [/autoit]

    Anscheinend bin ich zu müde oder einfach zu blöd. :pinch:
    Wieder das gleiche. Was ist diesmal falsch?
    Bzw. wie würde es richtig aussehen?

  • [autoit]

    $zahl = InputBox("Hi!", "Was ergibt 13 * 7?")

    [/autoit][autoit][/autoit][autoit]

    If $zahl = 91 Then
    MsgBox(6, $zahl, "Richtig!")
    Else
    MsgBox(0, $zahl, "Die Antwort ist leider falsch.")
    EndIf

    [/autoit]

    Wenn du ElseIf bzw Else benutzt (also mehr, als nur einen Einzeiler machst), musst du die Anweisungen in einer neuen Zeile schreiben. ;)