Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Exit in Select Case Kategorie: Programmierung Basic (von PeterS - 17.01.2009 13:19)
Als Antwort auf Re: Exit in Select Case von UlliS - 16.01.2009 17:36

> > > > Hallo Peter,
> > > >
> > > > kann es sein, dass der Exit-Befehl zum Verlassen von Schleifen nicht funktioniert,
> > > > wenn er aus einer Select-Case-Struktur aufgerufen wird? Ich habe ein Minimal-Beispiel
> > > > angefügt, wenn i den Wert 10 erreicht wird das @-Zeichen ausgegeben, aber die Endlos-
> > > > Schleife wird nicht verlassen.
> > > >
> > > > Viele Grü�e,
> > > >
> > > > AndyR
> > > >
> > > >
> > > >
> > > > Sub main()
> > > >   Dim i As Integer
> > > >
> > > >   i = 0
> > > >
> > > >   Do
> > > >
> > > >     AbsDelay(500)
> > > >
> > > >     Msg_WriteInt(i)
> > > >
> > > >     i = i + 1
> > > >
> > > >     Select Case i
> > > >     Case 10
> > > >       Msg_WriteChar(64)  ' @-Zeichen ausgeben
> > > >       Exit
> > > >     End Case
> > > >
> > > >   Loop While 1
> > > >
> > > > End Sub
> > > >
> > > >

> > >
> > >
> > > Hi,
> > >
> > > du verlässt ja nur die Case Anweisung nicht aber die Do Loop Schleife.
> > >
> > > Da müsstest du noch nach der End Case eine Abfrage einbauen:
> > >
> > > If i = 10 Then Exit : End if
> > >
> > > Grü�e Ulli
> > >
> >
> > Hallo Ulli,
> >
> > vielen Dank für Deine Antwort. Aber wenn Exit auch zum Verlassen von Select-Case-Strukturen dient, warum
> > wird der Befehl dann in der Dokumentation nur im Zusammenhang mit Schleifen erwähnt? Bei Select-Case
> > steht davon überhaupt nichts.
> >
> > Und wäre es nicht viel sinnvoller, wenn Exit sich auch in Select-Case-Strukturen auf Schleifen auswirkt?
> > Select-Case ist doch im Prinzip eine optimierte, mehrfache ElseIf-Abfrage und bei If-Abfragen dient Exit
> > ja auch nicht zum Verlassen der If-Abfrage.
> >
> > Viele Grü�e,
> >
> > AndyR
>
> Hallo AndyR,
>
> dimit wir hier uns nicht falsch verstehen.
>
> Do While True
>
>     x = x + 1
>
>     Select Case x
>
>         Case 10
>         'mach irgend was
>
>      Else
>         'mach was anderes
>
>     End Select
>
>
>     If x = 10 Then Exit : End If
>
> End While
>
> Die Exit Anweisung darf auf Do Loop, Do While und For Next angewannt werden.
> Innerhalb einer Select Case funktioniert die Exit Anweisung nicht (hab ich selber gerade probiert).
> Aber das wäre verbesserungsfähig... da müssen wir mal unseren Peter fragen *g*

Hmm, bei mir funktioniert die Exit Anweisung innerhalb des Select Case ohne Probleme (kann man
im Debugger gut testen). Ich kann das Verhalten was Programme jetzt seit 3 Jahren benutzen
nicht jetzt ändern, da danach alte Programmme vlt. nicht mehr laufen.

Gruss Peter

>
>
> Grü�e Ulli
>
>
>


    Antwort schreiben


Antworten: