Wystarczy powstawiać nowe linie:
Kod: Zaznacz cały
Dim Led As Word
Led = Rnd(5)
If Led = 0 Then
Goto Led0r
Elseif Led = 1 Then
Goto Led1r
Elseif Led = 2 Then
Goto Led2r
Elseif Led = 3 Then
Goto Led3r
Else
Goto Led4r
End If
Led0r:
'cośtam
Led1r:
'cośtam
Led2r:
'cośtam
Led3r:
'cośtam
Led4r:
'blablabla
Do:loop
End
GOTO a GOSUB...RETURN mają różne działanie. GOTO tylko przenosi aktualnie wykonywany program w inne miejsce a GOSUB wywołuje podprogram (coś podobnego bardzo do procedury). W tym miejscu uzycie GOSUB zmieniłoby całkowicie działanie programu.
Nie jestem pewien jak Bascom kończy program gdy nie ma pętli głównej dlatego bezpieczniej jest na końcu dać pętlę.
W tym programie faktycznie lepszym rozwiązaniem będzie użycie SELECT CASE:
Kod: Zaznacz cały
Dim Led As Word
Led = Rnd(5)
Select Case Led
Case 0 : Goto Led0r
Case 1 : Goto Led1r
Case 2 : Goto Led2r
Case 3 : Goto Led3r
Case Else : Goto Led4r
End Select
Led0r:
'cośtam
Led1r:
'cośtam
Led2r:
'cośtam
Led3r:
'cośtam
Led4r:
'blablabla
Do : Loop
End
Do kolegi Kulpina - zajrzyj do pomocy i poczytaj o konstrukcji IF...
Twoja interpretacja IF... ma troszeczkę inny sens niż IF... ELSEIF...
W Twoim przypadku wszystkie warunki zostaną sprawdzone, oczywiście tylko 1 w danej chwili będzie spełniony w przykładzie z tematu i efekt będzie taki sam, ale nie zawsze tak bywa.
W konstrukcji ...ELSEIF... jesli jeden warunek zostanie spełniony reszta nie jest sprawdzana.