2017-02-22 3 views
-3

Mein C++ - Lehrer hat mir einmal gesagt, dass ich nicht genug über die Schleifenbedingung denke, wenn ich eine Pause brauche, um aus einer Schleife herauszukommen.Raus aus einer foreach

Also hat sie (sehr guter Lehrer btw) einfach nicht erwähnt, dass foreach-Schleifen eine Ausnahme von dieser Regel sind (was ich allgemein für wahr halte) oder gibt es tatsächlich eine Möglichkeit, ohne eine foreach-Schleife auszusteigen eine Pause machen?

Ich frage im Allgemeinen, aber am interessantesten für mich wäre für Java oder PHP.

Bearbeiten: Falls ich das nicht klar gemacht habe, frage ich mich, ob es einen Weg gibt, aus einer foreach-Schleife zu kommen, ohne eine Pause zu machen. Nicht sicher, worum es bei dieser ganzen Aufregung geht, was ist mit dieser Frage falsch?

+0

Haben Sie versucht zu implementieren und zu sehen, was es tatsächlich tut? –

+0

Ich bin mir nicht sicher ob ich deine Frage bekomme ... ja, ich habe foreach-loops implementiert ...? – Samarek

+2

Ich stimme nicht mit Ihrem Lehrer überein. Vielleicht hat sie in der akademischen Welt der klar definierten Übungen und Probleme einen Sinn. Aber in der realen Welt der unberechenbaren Benutzer und der massiven Datenbestände ist es oft die sauberste Lösung, die Sie haben, wenn Sie wissen, dass es keinen Sinn hat, aus der Schleife herauszukommen. –

Antwort

1

foreach Schleifen haben keine Ausgangsbedingung mit Ausnahme der impliziten „, wenn es sind keine Elemente mehr zu durchlaufen ", so ist es nicht möglich brechen Sie früh aus ihnen aus und vermeiden Sie break ohne irgendeine Art von einem schrecklichen Hack (z. Ausnahme auslösen, Ändern der iterierten Sammlung, Setzen eines booleschen Flags dontContinue und Überprüfen in jeder Iteration usw.).

Für gewöhnliche Schleifen, es ist in der Tat immer eine offensichtliche Art und Weise mit break (Stop der aktuellen Iteration continue von if verwenden, und setzen Sie den frühen Ausgangsbedingung in Schleife Zustand) zu vermeiden, jedoch, ob ein solcher Ansatz führt zu einem besser lesbaren Code als mit break ist fraglich.


In einigen Fällen ist der Grund für Sie früh aus einer Schleife brechen zu wollen, weil Sie, was Aufgabe benötigt werden fertig gemacht, oder die benötigten Artikel gefunden. Ziehen Sie in solchen Fällen in Erwägung, die jeweilige Funktionalität in eine separate Methode zu setzen und return anstelle von break zu verwenden.

+0

Irgendwie was ich schon dachte, da es völlig Sinn macht. War im Grunde nur nach Bestätigung gesucht. Vielen Dank – Samarek

-1

tatsächlich können Sie aus foreach Schleife mit einer Pause in PHP!

Beispiel:

<?php 

$test = array("1", "2"); 

foreach($test as $ok) 
{ 
    break; 
} 

echo $ok; 

Will Ausgang 1

Test an:

http://phptester.net/

+0

Wie verlässt dies die Schleife ohne Verwendung von "Pause", wie OP Frage? –

+0

@JiriTousek Er fragte erst, ob die foreach-Schleife nicht mit Pause enden kann! – Soheyl

+0

Diese Antwort würde eigentlich auf das Gegenteil meiner Frage zutreffen. – Samarek

Verwandte Themen