Moin.
Und in dem Fall brauchts dann meiner Meinung nach schon zwei bools.
Sehe ich auch so - oder einen Datentyp, der (mindestens) drei Zustände beschreiben kann.
Den Allowed-Fall kann man mit veto=false; vote=true; goto Allowed; erledigen.
Oder, wie in 'meiner' Version, einen direkten Sprung zur Element-Hinzufügung (es ist schon spät bzw. noch ziemlich früh, etwaige sprachliche Fehlgriffe möge man mir verzeihen ;))
Man könnte das switch durch eine if-else-if-Kette ersetzen und hätte dann das break frei für das foreach, aber das gefällt mir auch nicht besser als das goto.
Bei geschachtelten Kontrollstrukturen kommt man meines Wissens nach in C# nicht um goto
herum; in Java hätte man der Schleife ein Label verpassen und diese dann gezielt per break
verlassen können.
Christoph