Haben eine harte Zeit zu verstehen, for-Schleifen und verschachtelten for-Schleifen
So, ich verstehe die Programmierung sehr gut,... aber vor kurzem kam ich über mit for-Schleifen und vor allem die verschachtelt.. ich kann einfach nur nicht verstehen. Es einfach nicht geben in meinem Kopf. Kann jemand mir einige Tipps, wie Sie wahrnehmen, um diese Schleifen besser (oder... auf alle)?
Vielen Dank im Voraus
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein Programm beschreibt eine Folge von Operationen, die der computer ausführen soll. Bei diesen Operationen kann einige untersequenzen, dass der computer sollte mehrmals wiederholen. Statt buchstäblich Wiederholung dieser untersequenzen der entsprechenden Anzahl von Zeiten in den Programm-Quelltext (die in vielen Fällen nicht möglich ist), können Sie verwenden ein Konstrukt, das sagt dem computer, dass es am Ende so eine Folge sollte es wieder oder 'loop' zurück zum Anfang der Teilfolge. Diese Art der Konstrukte werden üblicherweise als "Schleifen".
In einigen Fällen, eine sich wiederholende Folge von Operationen selbst enthält eine Folge von Operationen, die wiederholt werden soll, mehrfach als Teil der Durchführung, die eine iteration des enthaltenden Sequenz. Auch das kann dargestellt werden, die über ein loop-Konstrukt.
Beispiel: Algorithmus für die Reinigung der Fenster in meinem Haus
Dass zwei Schleifen: eine äußere aus jedem Schritt, außer dem ersten, und eine innere, bestehend Schritte 3.1 bis 3.3.
Oft, es ist eine Art Initialisierung oder Start-Zustand, der erreicht werden müsse, bevor die Schleife. In dem Beispiel, ich muss mein Reinigungsmittel bei der hand, bevor ich tatsächlich sauberes windows, und ich will starten, im ersten Fenster.
In den meisten interessanten Fällen, die Sie nicht im Voraus wissen, wie viele Male das Programm ausführen müssen, um durch eine gegebene Schleife. In dem Beispiel, zum Beispiel, könnte ich in der Lage sein, um vorauszusagen, dass die Anzahl der Iterationen der äußeren Schleife, wie die Anzahl der Fenster in meinem Haus, aber ich kann nicht sicher sein, wie viele Iterationen der inneren Schleife wird erforderlich sein, für jedes Fenster. Schleifen-Konstrukten behandeln, indem wir flexible Bedingungen für die Schleife Kündigung.
Auf der anderen Seite etwas zu ändern hat, von iteration zu iteration, da sonst die Wiederholung wird nie aufhören. Im einfachsten Fall, die Sache, die Veränderungen auslösen, eventuelle break aus der Schleife ist (Abstrakt) die Anzahl der loop-Iterationen, die durchgeführt wurden, bereits. Oft wollen wir aber eine flexiblere Messen, ob mehr Iterationen benötigt werden, wie: "ist das Fenster sauber genug?"
C/Java-Stil
for
Schleife formalisiert diese drei Elemente: Initialisierung (erste Lieferungen), Abbruchbedingung (gibt es noch mehr schmutzige Fenster?), und update (gehen Sie zum nächsten Fenster). Die Initialisierung Schritt wird einmal ausgeführt, bevor die erste iteration. Die Abbruchbedingung getestet wird vor jeder iteration (und die Schleife endet, wenn es ausgewertet wirdfalse
), und der update-Schritt wird durchgeführt, nachdem jeder iteration werden vor dem testen der Abbruchbedingung für die nächste iteration. Wenn die Schleife normal beendet wird, wird der computer weiter führt die Anweisung unmittelbar nach der Schleife.Weiterhin die dummes Beispiel:
In diesem Fall stellte ich die innere Schleife mit einer anderen Schleife konstruieren (
do { ... } while
) da passt es natürlich mehr mit den Tatsachen, dass es keine Initialisierung Schritt erforderlich ist, brauche ich nicht zu testen, für die Kündigung vor der ersten iteration, und der update-Schritt durchgeführt wird in den Körper der Schleife. Da es nicht wirklich schädlich sein, zum testen der Abbruchbedingung vor dem ersten Durchlauf, aber ich kann schreiben, die innere Schleife alsfor
- Schleife, auch. Ich lasse nur die Teile, die ich brauche nicht leer (aber ich immer müssen die zwei Semikolon-Trennzeichen):... Und das ist das meiste, was Sie wissen müssen über Schleifen im Allgemeinen und der
for
Schleifen insbesondere.Wenn wir eine Schleife in den Körper einer anderen Schleife aufgerufen wird nested loop. Und die äußere Schleife wird die Kontrolle der Anzahl der vollständigen Wiederholungen der inneren Schleife, d.h. die innere Schleife in dem Beispiel weiter unten ausgeführt wird, die mindestens 10 mal wegen der Bedingung a<10.
In dem unten angeführten Beispiel "Print B" erscheint 200 mal, also 20 * 10. Die äußere Schleife Eine innere Schleife wird ausgeführt, B, 10-mal. Und da die innere Schleife B konfiguriert ist, um 20 mal die Summe der Zeiten Drucken B angezeigt wird, 200.
Es gibt viele verschiedene Arten von Schleifen, aber alle Verhalten sich ähnlich.
Dem Grundgedanken einer for-Schleife ist, dass der code innerhalb der for-Schleife block wird Durchlaufen, solange der iterator wird innerhalb eines bestimmten Bereichs.
d.h.
In den code hier ein (C++) wird der iterator i, und der code-block int x = ich. Dies bedeutet, dass der code-block wird ausgeführt, i = 0, i = 9, jede Zeit, die Einstellung x zu i erhöht den Wert von i um 1.
Hier sehen Sie, eine andere Beschreibung: C++ For-Schleifen
Und wenn Sie in Java: Java-For-Schleifen
Verschachtelte for-Schleifen funktionieren auf die gleiche Weise, der einzige Unterschied ist, dass für jede iteration der äußeren Schleife Sie komplett Durchlaufen der inneren Schleife.
d.h.
Hier sehen Sie, dass jedes mal, wenn Sie ausführen, wird der code innerhalb der ersten for-Schleife, die Sie ausführen wird der code innerhalb der inneren for-Schleife bis zur Fertigstellung, oder bis j gleich 5. Dann haben Sie die Iteration der äußeren Schleife, und führen Sie es erneut.
Hoffe, das hilft.