PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : If Anweisung und Bascom



Devoc
24.08.2006, 01:44
Irgendwie habe ich Probleme mit der If-Anweisung und Bascom, genauer gesagt mit dem then/else und end if.
Laut
https://www.roboternetz.de/wissen/index.php/Bascom_Verzweigungen heisst es:
Hier kann man dann unter “Then”, mehrere Anweisung schreiben. Muss diese aber dann mit „End if“ abschließen.
Schreibe ich die komplette Anweisung mit nur einer Anweisung in eine Zeile benötige ich kein End if. Schreibe ich die selbe in mehrere mit End if geht das irgendwie trotzdem nicht.
Als Beispiel:


Dim Lang As Bit
Dim Kurz As Bit
Dim Tzler As Byte

If Tzler > 30 Then Lang = 1 Else Goto COMBINE

Combine:

Kurz = 1
Lang = 0

funktioniert. Dagegen bekomme ich denselben Fehler ohne und mit End if bei

If Tzler > 30 Then Lang = 1 Else Kurz = 1 Lang = 0

Error 35: line ... 3 parameters expected ...

Was mach ich da falsch ?¿? Das selbe Problem besteht bei der Then Anweisung. Alles mit einem goto schreiben wird arg unübersichtlich. Komischerweise geht es in mehreren Zeilen mit End if manchmal, aber nicht immer.
Habt ihr das Problem auch oder stelle ich mich nur zu blöd an?

Gento
24.08.2006, 05:37
Schreibst DU:

if Lang>Kurz then
____________ Kurz=Lang
___________else
____________lang=Kurz
end if

Ohne diese '_'
Das geht immer und der Code ist wesendlich besser lesbar.
Oder Du selbst verstehst Deine Code in 3 Jahren auch noch sofort.

Gento

magnetix48
24.08.2006, 10:04
Hallo,
wenn du alles in eine Zeile schreiben willst, sieht es so aus:

If Tzler > 30 Then : Lang = 1 : Else : Kurz = 1 : Lang = 0 : End If

Zwischen den Befehlen muss ein Doppelpunkt stehen, End If nicht vergessen!

Devoc
24.08.2006, 12:18
Das mit dem Doppelpunkt funktioniert :-)
Die "_"-Art funktioniert jetzt auch wieder. Komisch. Dachte das hätte irgendwas mit zu vielen Leerzeichen zu tun. Wahrscheinlich hat mein PC bloss ein wenig rumgezickt.

Vielen Dank für die Hilfe