for each mit 2 next

XChris

Erfahrenes Mitglied
Hallo. Ich möchte folgendes tun:

Code:
For Each blub As String in liste.GetElements

if mist=true then
  Machnix()
  next
end if

Machwas()

next

Ich komme perdu nicht aus dem if .... !? Gibt es denn nix so wie ein continue?


Chris

PS: Goto will ich nicht. Da hack ich mir lieber die Hand ab.
 
kann es sein das dein Feld mist immer true zurück gibt?

Ich glaube das erste next brauchst du garnicht!
 
Das ist doch nur ein Beispiel

Stell Dir vor, dass sich "Mist" zur Laufzeit ändern könnte ... weil es statisch ist und z.B. irgendwann mit Werten belegt wird ... oder sonstwas.

Das Beispiel macht Sinn, nur wenn ich hier meinen Quellcode poste, sieht man nur bömische Dörfer.

Chris
 
Ist das Problem, dass Machnix() erst abgearbeitet wird, was ziemlich lange dauert, und dann erst das nächste Element bearbeitet wird? Wenn ja, dann wirst du wohl Threads benutzen müssen, in welchen du Machnix() und Machwas() ausführst.
Ansonsten würde ich doch einfach sagen:
Code:
For Each blub As String in liste.GetElements
  If mist=True Then
    Machnix()
  Else
    Machwas()
  End If
Next
Ist zwar sehr trivial, aber man weiß ja nie :)
 
Danke suye.

Aber es ist ja komplizierter ...

Also es ist nun so, dass man nicht aus nem IF "früher" mit einem NEXT raus darf? Richtig?
Das ist nen echtes MegaPfui.

Nehmen wir folgendes an:

Code:
For Each blub As String in liste.GetElements
  DIM flag as integer = 0
  If mist=True Then
    Next ' <<<----FEHLER
  Else if mist =false
    flag = Machwas()
   else if mist = false and flag & 2 = 2
    flag = Machwas()
  End If

MachImmerWasAusserMistIstTrue(flag)
Next

Mir ist klar, dass ich das mit redundaten Code und nen vielen IF auch aufdröseln kann. Ich hat nur gehofft aus nem IF herraus nen NEXT ausführen zu dürfen ...

Chris
 
Und was hälst du davon?
Code:
For Each s As String In col
  Select Case bool
    Case True
       'do something
        Exit Select
    Case False And flag <> 2
        'do something
    Case False And flag = 2
         'do something
  End Select
  'do something
Next

Aber was stört dich denn genau? Geht es hier um Schönheit oder wirklich um was wichtiges wie Performance?
 
Zuletzt bearbeitet:
Aber was stört dich denn genau? Geht es hier um Schönheit oder wirklich um was wichtiges wie Performance?

Performance und Schönheit.
A) Muss er ja durch alles erst durchrattern und B) ich kann nur schlecht allen ausser einem Zweig gleichen Code geben, außer ich schrieb es in ne extra Methode und kritzle in jeden zweig den Methodennamen.

Ich hab nun 2 If's.

Im ersten steht die, wo keine Abschliesende generelle Behandlung stattfindet. Der zweite hat dann den casezweig mit der Methode am Ende die von dieses gemeinsam genutzt wird.

Naja. So gehts ... aber schön isses net. VB Prosa halt. Aber Danke für die Mühe.

Chris
 

Neue Beiträge

Zurück