Bessere Möglichkeit, Wiederholungslogik ohne goto [duplicate] zu schreiben

7

Gibt es eine bessere Möglichkeit, diesen Code ohne goto zu schreiben? Es scheint unangenehm, aber ich kann mir keinen besseren Weg vorstellen. Ich muss in der Lage sein, einen Wiederholungsversuch durchzuführen, aber ich möchte keinen Code duplizieren.

%Vor%     
CluelessCoder 10.11.2010, 20:42
quelle

7 Antworten

15

Hier ist die grundlegende Logik, die ich anstelle einer goto-Anweisung verwenden würde:

%Vor%

Ich habe gerade # logs der Versuche hinzugefügt, obwohl die ursprüngliche Frage keine hatte.

    
Michael S. Scherotter 10.11.2010, 20:45
quelle
5

Michaels Lösung erfüllt nicht ganz die Anforderungen, die eine bestimmte Anzahl von Malen wiederholen sollen, um den letzten Fehler auszulösen.

Dafür würde ich eine einfache for-Schleife empfehlen, die herunterzählt. Wenn Sie erfolgreich sind, beenden Sie mit Pause (oder, falls zweckmäßig, zurück). Lassen Sie andernfalls den Catch überprüfen, ob der Index auf 0 reduziert ist. Wenn dies der Fall ist, wiederholen Sie den Vorgang, anstatt zu protokollieren oder zu ignorieren.

%Vor%

Im obigen Beispiel wäre eine Rückgabe in Ordnung gewesen, aber ich wollte den allgemeinen Fall zeigen.

    
Steven Sudit 10.11.2010 20:51
quelle
4

@ Michaels Antwort (mit Ein korrekt implementierter Catch-Block ist wahrscheinlich am einfachsten in Ihrem Fall zu verwenden und ist der einfachste. Aber im Interesse der Darstellung von Alternativen gibt es hier eine Version, die die "Wiederholungs" -Flusskontrolle in eine separate Methode einbezieht:

%Vor%

Sie könnten dies natürlich mit Dingen wie Wiederholungszählungen, besserer Fehlerfortpflanzung usw. verbessern.

    
LBushkin 10.11.2010 21:03
quelle
1

Was ist, wenn Sie es in eine Schleife legen? Etwas Ähnliches, vielleicht.

%Vor%     
Joe 10.11.2010 20:48
quelle
1
%Vor%     
Heinzi 10.11.2010 20:49
quelle
0

Versuchen Sie etwas wie folgt:

%Vor%     
chezy525 10.11.2010 20:49
quelle
0

mit einem booleschen

%Vor%     
Jimmy 10.11.2010 22:54
quelle

Tags und Links