>> DOUG LLOYD: Okay, so lassen Sie uns über Schleifen sprechen.
So Schleifen sind irgendwie cool weil sie Ihr Programm
Codezeilen auszuführen immer und immer wieder.
Wiederholt, ohne zu kopieren und Einfügen oder auf andere Weise wiederholen.
Es gibt drei Haupt Arten von Schleifen du wirst sehen.
Wahrscheinlich werden Sie Gelegenheit haben, zu verwenden jeder, wie Sie Fortschritte durch CS50.
Einige dieser Schlaufen sind ziemlich kennen Sie von Grund auf neu,
so wieder, wie wir mit conditionals tat, wir sie einander Aufmachungen Seite
wenn es eine Analogie können wir zeichnen.
>> Zunächst ist für immer von Grund auf neu, was im Vergleich zu while (true).
Dies ist, was wir eine Endlosschleife nennen.
Die Zeilen von Code zwischen den geschweiften Hosenträger, ähnlich wie die Puzzleteile
dass fit im Inneren des C der für immer blockieren,
wird immer wieder von oben ausführen nach unten, immer und immer und immer wieder,
für immer.
Nach allem, wenn Sie unsere erinnern Diskussion der Booleschen Ausdrücken,
wahr ist immer wahr.
Also, wenn wir tun, etwas so lange, wie wahr
wird true-- es scheint ein wenig Silly-- wahr immer wahr ist, so dass es dann immer laufen.
Es werde für immer laufen und immer und ewig, bis wir
einen Weg finden, aus der es mit zu brechen eine break-Anweisung, die wiederum,
wir vor einer Weile haben wir gesehen, wurden über Schalter im Gespräch.
>> Oder anderweitig einfach töten unsere Programm, das übrigens
Wenn Sie sich jemals in einer Situation mit einer Endlosschleife
und Sie nicht wissen, wie zu stoppen Ihr Programm ausgeführt.
Drücken Sie einfach Kontrolle und C das wird Ihr Programm für Sie zu töten.
Aber dies ist wieder genannt Endlosschleife.
Es ist eine Schleife, die immer ausgeführt wird.
Jetzt, während Schleifen sind nicht immer unendlich, weil auch
können wir die Boolean ersetzen Ausdruck mit etwas,
ein wenig mehr als nur sinnvoll wahr.
Also hier ist ein weiteres Beispiel.
Während und einige Boolean Ausdruck und geschweiften Klammern.
Das ist so ziemlich analog bis zu wiederholen, von Grund auf neu.
Obwohl in einer zweiten, werde ich erklären den Unterschied.
>> So in C, wenn der boolesche Ausdruck innerhalb der while-Schleife
true ergibt, der Linien von Code zwischen den geschweiften Klammern
wiederholt immer und immer ausführen und über, bis Booleschen Ausdruck
das Ergebnis falsch.
So zum Beispiel, könnten Sie haben eine Art von Gegen.
So sagen Sie zu Beginn des diese Schleife sagen int x gleich Null ist.
Während x kleiner als 100 ist, tun ein paar Dinge im Inneren, dass geschweiften Klammern,
dann in das Ende der Schleife, Sie sagen, x plus plus, Sie Inkrementieren x sind.
Schließlich x erhalten 100 und Sie werden
zu stoppen, weil die Bedingung x kleiner als 100
nicht mehr wahr sein, Sobald x gleich 100 ist.
100 nicht kleiner als 100 ist.
>> Jetzt etwas verwirrend, das Verhalten der Kratzblock umgekehrt wird.
Also wirklich vorsichtig sein, wenn dies Ihren ersten Ausflug in die Verwendung von Schleifen.
Grundsätzlich ist die Wiederholungs bis Block in Scratch
wird etwas wiederholen immer und immer und immer wieder,
bis zum Ausdruck, die Boolesche Expression in dem Sechseck ist wahr.
So wird es weiterhin tun, bis es wahr ist.
In der Zwischenzeit wird die while-Schleife weiterhin, es zu tun, bis sie falsch ist.
So sind sie sehr ähnlich, aber gibt es wenig Unterschied, dass nur
vorsichtig sein, von allem, wie Sie machen Ihren ersten Ausflug von Übergang
in c Scratch.
Die nächste Art von Schleife eigentlich ziemlich ähnlich.
Es ist die Do While-Schleife genannt.
Diese Schleife wird alle Zeilen ausführen Code zwischen den geschweiften Klammern einmal,
und dann wird es zu überprüfen der boolesche Ausdruck.
Wenn der boolesche Ausdruck true ergibt,
es gehe zurück und wiederholen dieser Prozess immer
und über, bis die Boolean Ausdruck den Wert false.
Also diese Schleife, im Gegensatz zu einer while-Schleife ist garantiert mindestens einmal ausgeführt.
Dies kann recht nützlich sein.
>> Schließlich haben wir eine for-Schleife.
For-Schleifen sind so eine Art syntaktisch unattraktiv
und es gibt eine Menge los hier vor, so mit mir tragen
wie wir versuchen und brechen diese Stücke auseinander.
Im Allgemeinen wird die Anwendungsfall einer for-Schleife ist, dass Sie
wollen etwas ein wiederholen bestimmte Anzahl von Malen.
In diesem Beispiel hier, Ich habe den Wiederholungsblock
von Grund auf neu, das ist analog zu der for-Schleife
in C, zu wiederholen etwas 10 mal.
Und die for-Schleife auf der linken Seite befindet, die
ist ein Vier-Schleife, würde das gleiche tun.
Dies würde 10-mal zu gehen.
Zählen von Null an, wir inkrementieren jedem Durchgang der Schleife.
Und wir weiterhin tun, dass bis i geringer als 10.
>> Also, was passiert?
Es gibt eine ganze Menge Code da.
Lassen Sie uns brechen sie auf was geschieht Schritt
Schritt, wie wir zu graben, durch eine for-Schleife.
Das erste, was passiert ist, die Zählervariable ist Zentrum.
Alles links jenes ersten Semikolon innerhalb der Klammern
ausgeführt.
In diesem Fall sind wir sagen int i gleich 0 ist.
Deklarieren Sie eine neue Variable namens i, dass Variablen ist ein Typ Integer
und wir sagen, den Wert im Inneren diese Variable wird auf Null gesetzt.
>> Das zweite, was wir tun, ist wir dann sofort bewerten
der boolesche Ausdruck.
Boolescher Ausdruck ist in der Mitte der beiden Strich.
I weniger als 10.
Das stimmt hier, nicht wahr?
Wir haben gerade die i gleich ist Null, so dass die 0 beträgt weniger als 10,
und so, dass Zustand ist wahr, und wir werden jetzt
fortfahren, den Körper der Schleife auszuführen.
Wenn es falsch war.
Wenn beispielsweise die I anstelle von i gleich 0 ist es, sagte ich i gleich 15,
int i gleich 15.
Wanne 15 ist nicht weniger als 10, so dass wir würde nie in den Körper der Schleife
weil der Booleschen Ausdruck gäbe es zu bewerten, falsch zu sein.
>> Nachdem wir gehen von oben nach unten, wir begegnen, dass schließende geschweifte Klammer,
eine dritte Sache geschieht.
Die Zählervariable ist inkrementiert oder besser die Leitungen
Code einer Erklärung nach dem zweiten Semikolon innerhalb der
for-Schleifen Klammern wird ausgeführt.
So dass wir beginnen, indem sagen int i gleich 0 ist.
Dann überprüfen wir, ob der Boolesche Ausdruck wahr ist.
0 weniger als 10, so dass es wahr ist.
So werden wir vorgehen in den Körper der Schleife.
Die Dinge werden sich innerhalb der Schleife geschehen, und Wenn wir feststellen, dass die schließende geschweifte
Klammer, die nächste Sache, die wir tun wird sagen wir i und, und.
Ich war gleich Null ist nun i eins.
Dann prüfen wir wieder den Wert von der boolesche Ausdruck in der Mitte.
Eine weniger als 10.
Also werden wir durch diese gehen verarbeiten wieder und wieder.
Wir werden auf den Schluss erhalten geschweifte Klammer wieder.
Wir werden von i zu erhöhen 1-2 und 2-3.
Und so weiter und so weiter und so fort, bis Irgendwann habe ich den Wert wird 10.
10 weniger als 10?
Nein.
Zählen von 0, die wir gegangen sind bis 10 Iterationen der Schleife.
Wir haben 10-mal wiederholt, nur wie wir in der Scratch-Block.
Und damit ist im Grunde die Prozess für einen Vier-Schleife.
>> Jetzt Wegnehmen der eigentlichen Code und legt es
in nur einige grundlegende allgemeine Aussagen.
Hier ist, was passiert.
Alle Aussagen in beginnen, werden zuerst ausgeführt.
Vielleicht haben Sie mehr als eine.
Dann wird der Booleschen Ausdruck geprüft.
Wenn der Ausdruck true, dem Körper ausführen, die Schleife einmal.
Wenn der Ausdruck false, wir sind fertig.
Wir wissen nicht ausführen, die Körper der Schleife überhaupt.
Nachdem wir ausgeführt haben die Körper die Schleife einmal,
wir dann tun, was in der Zuwachs Teil gibt.
Die in der Regel gehen, um sein so etwas wie i plus plus
oder so ähnlich, dass ändert eine Zählervariable.
Dann, nach dem wir uns zu erhöhen, haben wir überprüfen Sie den Ausdruck erneut
und wiederholen Sie diese Schritte über und über und über, bis der Ausdruck
nicht mehr wahr.
>> Also, was sind die Anwendungsfälle für eine Schleife?
Verwenden Sie eine while-Schleife verwenden, wenn Sie eine Schleife wiederholt werden soll
eine unbekannte Zahl von Zeiten, aber es möglicherweise nicht alle laufen könnte.
Ein wirklich typisches Beispiel für eine Weile Looping verwendet wird
ist es, den Kontrollfluss für ein Spiel zu starten.
Sie konnten nicht wissen, wie lange die Benutzer sein wird zu spielen,
aber Sie behalten möchten das gleiche tun.
Aktualisieren der Positionen verschiedene Sprites auf dem Brett.
Sie wollen die Dinge zu halten Bewegen zu allen Zeiten,
aber du weißt nicht, wenn die User wird die Wiedergabe zu stoppen
oder, wenn sie gehen, um von Leben laufen.
So eine while-Schleife ist wirklich gut für so etwas.
Das ist eine gute Anwendungsfall.
>> Für eine do while-Schleife, es ist ziemlich ähnlich.
Sie wollen eine Schleife zu wiederholen, eine unbekannte mals, mindestens jedoch einmal.
Man könnte dies für ein Spiel zu verwenden auch, aber eine wirklich gemeinsame Anwendungsfall
wird der Benutzer aufgefordert für die Eingabe.
Im Allgemeinen sollten Sie etwas sagen wie, geben Sie mir eine positive ganze Zahl ist,
und man könnte in Aufmachungen Innere eines do-while-Schleife.
So wird es immer fragen sie an mindestens einmal für eine positive ganze Zahl ist.
Wenn sie Ihnen eine positive ganze Zahl ist, Sie könnten aus der Schleife zu brechen.
Sie könnten durchgeführt werden.
Die Booleschen Ausdruck in das zu tun, während könnte falsch sein.
>> Und Sie werden sie nicht noch einmal fragen.
Wenn sie eine negative Zahl, wo Ihnen Sie geben ein Wort oder etwas, das ist
nicht wirklich sinnvoll, Sie, können Sie die Verwendung
Sie while-Schleife zurück zu gehen und zu tun es wieder und wieder und wieder.
Sie möchte auf jeden Fall fragen, sie Ihnen eine Reihe einmal zu geben,
aber du weißt nicht, wie viele Male Danach könnten sie Schädlinge.
Und so ein Do, während es ist ein großer Einsatz Fall zum Auffordern des Benutzers zur Eingabe.
Und eine for-Schleifen verwenden Fall in der Regel ist, wenn
Sie, um eine Schleife wiederholt werden soll eine diskrete Anzahl von Malen,
Obwohl Sie vielleicht nicht einfach die Anzahl der Male
der Moment, das Programm kompiliert wird.
>> So zum Beispiel, vielleicht haben Sie ein Programm haben, in dem Sie den Benutzer nach einer Reihe aufgefordert.
Und sie geben 100.
Und dann Ihre for-Schleife wird In diesem Fall führen Sie das 100-fache.
Oder sie geben 1000 in Ihrem Programm
und führen Sie dann die Schleife 1000 mal.
Es ist eine bestimmte Anzahl von Malen.
Sie geben nicht notwendigerweise wissen, was diese Zahl
ist der Moment, Programm kompiliert wird.
Es ist nicht wie eine while-Schleife wo könnte sie unendlich sein.
Es ist vielmehr eine Reihe dass Sie einfach nicht wissen.
Nun, obwohl ich habe umrissen alle diese Anwendungsfälle,
Sie sollten wissen, dass in ziemlich viel jeder Umstand,
Sie können alle austauschen drei dieser Schleifen.
Sie können eine for-Schleife, wo Sie verwenden anderweitig zu nutzen wäre eine while-Schleife.
Sie können eine for-Schleife, wo immer verwenden Sie do while-Schleife und so weiter verwenden möchten.
Es kann ein wenig schwierig manchmal sein, so in der Regel ist es eine gute Praxis
Zu einem typischen Anwendungsfall entsprechen.
Verwenden Sie ein do-while-Schleife, wenn Sie wollte etwas einmal, zumindest.
Verwenden Sie eine for-Schleife, wenn Sie wollen, etwas ein bestimmte Anzahl von Malen.
Immerhin, das ist, warum gibt es Drei verschiedene Arten von Schleifen.
>> So dass sie verwendet werden können, im richtigen Kontext.
Aber Sie austauschen können sie, wenn Sie wollen.
Wenn Sie sich wohl fühlen mit While-Schleifen und Sie wollen immer while-Schleifen verwenden.
Es ist etwas, Sie tun können, auch wenn es
vielleicht ein wenig syntaktisch sein tricky, in einer for-Schleife
wäre viel einfacher.
>> Mein Name ist Doug Lloyd und das ist CS50.