Avatar billede andersleby Nybegynder
17. maj 2001 - 09:49 Der er 4 kommentarer

Loop uden Do !

Hvad gør et program, hvis det møder en Loop, uden at have mødt den tilhørende Do?

Eksempel:

Do Until rsl.EOF
.. kode,kode
Label1:
.. kode,kode
Loop

Hvis der så bliver GoTo til Label1:, vil Loop så finde sin tilhørende Do og fortsætte løkken, så hvis den var blevet på \"autoriseret\" vis?

Jeg vil lige sige, at det ikke er mig, der har fundet på denne latterlige GoTo-konstruktion, som selvfølgelig skriger til himlen, men det sker jo, at man skal rette i andre folks programmer. :-(
Avatar billede tdaugaard Nybegynder
17. maj 2001 - 09:54 #1
Du kan godt GoTo en label i et loop, MEN jeg tror ikke at det går godt..
Avatar billede andersleby Nybegynder
17. maj 2001 - 10:01 #2
Jo, det går fint. Programmet virker udmærket, men da jeg ikke kan debugge det, kan jeg ikke finde ud af hvorfor det egentlig virker (og dermed heller ikke ændre funktionaliteten).
Avatar billede carstenp Nybegynder
17. maj 2001 - 10:32 #3
Det kan godt lade sig gøre, men du skal bruge løkkerne med lidt omhu! Det virker ikke hvis du bruger \"until\", men \"while\" ser ud til at virke.
Hvis du bruger else i stedet elseif er der også
problemer med at den går ind i begge løkker.

Jeg har lavet et eksempel hvor det godt kan lade sig gøre at hoppe direkte til de forskellige labels.

Prøv det og se om det dur for dig!

Private Sub Command1_Click()
Dim i As Integer
MsgBox \"starter løkken\"

Do While i < 10

i = i + 1

If i < 3 Then
GoTo label1
ElseIf i > 2 Then
GoTo label2

End If

label1:
MsgBox \" indenfor label1, i= \" & i

label2:
i = i + 2
MsgBox \"indenfor label2, i= \" & i

Loop
End Sub


/Carsten
Avatar billede andersleby Nybegynder
17. maj 2001 - 10:48 #4
Hmm.. Spøjst. Det program, jeg har her, bruger faktisk netop Until, og det ser som nævnt ud til at virke. Ydermere springes der endda til labelen fra et sted uden for løkken (det er noget rigtigt griseri!).
Svaret, jeg søgte, fandt jeg i MSDN: Loop betyder slet og ret: Gå tilbage til foregående Do, og test konditionen. Man fortsætter altså som om intet var hændt, selvom man hopper ind midt i det hele.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester