Gut. So, jetzt über etwas sprechen lassen in programming-- wirklich nützlich bedingte Anweisungen. So bedingte Ausdrücke lassen Sie Ihren Programmen um Entscheidungen zu treffen und verschiedene Gabel in der Straße, etwas Ich spielte auf etwas früher, abhängig von den Werten von Variablen, oder basierend, was die Benutzereingaben an der Programmierer, in der Befehlszeile, oder, wenn Sie gefragt haben, oder etwas ähnliches. C hat eine Reihe von verschiedenen Möglichkeiten, Ausdruck bedingte Ausdrücke, die wir manchmal nennen bedingte Verzweigung in Ihren Programmen. Und einige von ihnen gehen, um zu suchen ziemlich vertraut, Sie von Grund auf neu, so dass wir auch ziehen sie nebeneinander, nur Sie können diese Analogie in Ihrem Kopf zu machen. Also, wenn es eine ziemlich if-- einfache bedingte. Wenn Sie von erinnern Kratzer auf der rechten Seite hier Sie könnten füllen Sie also Sechs mit einem blauen Ausdruck, wenn die Maus nach unten oder wenn x kleiner als 10 ist, oder etwas ähnliches. Und dann, wenn x weniger als 10, oder, wenn die Maus in der Tat, nach unten, den gesamten Code innerhalb der Puzzle-Stück würde auszuführen. All die Dinge, die passen innerhalb dieser C-Form. In ähnlicher Weise haben wir Wenn auf der linken Seite. Wenn Boolescher Ausdruck, was ich bin nur mit als Ersatz für eine der Booleschen Ausdrücke, die wir zuvor besprochen, offene geschweifte Klammer, in der Nähe geschweifte Klammer. So denken öffnenden geschweiften Klammer und geschlossene geschweifte Klammer als eine Art analog der Sandwich Wirkung der if-Block auf der rechten Seite von Anfang an. Wenn der boolesche Ausdruck in der, wenn Aussage wahr ist, dann werden alle Codezeilen zwischen den geschweiften Klammern werden in der Reihenfolge ausführen von oben nach unten. Wenn der boolesche Ausdruck falsch ist, werden wir überspringen alles dazwischen die geschweiften Klammern, denn nur wir möchte in die Straße hinuntergehen, dass die Gabel wenn der Boolesche Ausdruck wahr ist. Wir können noch einen Schritt zu nehmen ferner mit, wenn andere. Also das Scratch-Block ziemlich ähnlich dem wir sahen nur eine Sekunde vor, mit der Ausnahme, dauert es zwei verschiedene Wege auf der Basis auf, was passiert. Also, wenn die Maus nach unten war, oder wenn x weniger als 10, wir werden alles, was dazwischen ist zu tun dass erste Gabel, dass erste C, Wenn andernfalls die Maus oben, oder x ist nicht kleiner als 10, wir werden alles in der zweiten Menge zu tun. Und das ist, analog zu, was Sie sehen hier für C. Wenn Boolescher Ausdruck, tun das Zeug zwischen die erste geschweifte Klammern gesetzt. Else, tun das Zeug zwischen die zweite geschweifte Klammern gesetzt. Also, wenn der Boolean Ausdruck wahr ist, werden wir tun, was zwischen dem ersten Satz ist. Wenn der boolesche Ausdruck falsch, das wäre das sonst auslösen, und wir würden was auch immer in zu tun der zweite Satz von geschweiften Klammern. Wieder oben nach unten, die alle Linien zwischen den geschweiften Klammern. In C, dann ist es möglich, zu erstellen eine if-else-if-else-Kette. In der Tat können Sie haben if-else-if-else if-else, wenn und so weiter und so weiter und so am. In Scratch, dies erforderlich Verschachtelung der Blöcke. Sie fügen eine if-else, und Sie hatten anders eine innerhalb der anderen, und so weiter, und es wurde Art von verschachtelten und kompliziert. Aber C, wir nicht haben, das zu tun. Wir können tatsächlich nur noch es ist eine Kette so sein. Auch hier, wie Sie vielleicht erwarten, alle diese Schenkel gegenseitig ausschließen. Sie können immer nur gehen auf eine von der Branche. Wenn dies wahr ist. Andernfalls, wenn dies wahr ist. Andernfalls, wenn dies wahr ist. Ansonsten tun. So alle vier Niederlassungen in diese Beispiel gegenseitig ausschließen. Es ist eine if-else-if-else-Kette. Es ist zwar möglich, und manchmal sehr nützlich, um eine Kette zu schaffen nicht gegenseitig aus Zweigen. In diesem Beispiel ist nur die dritte und vierten Zweig gegenseitig ausschließen. Es könnte sein, dass man erfüllen die erste Bedingung, und Sie zufriedenstellen könnte die zweite Bedingung, und man konnte das erfüllen dritte Zustand- wobei Sie gehen den ersten Zweig, dann Sie gehen einen zweiten Zweig, dann würden Sie gehen den dritten Zweig. Oder vielleicht haben Sie das erste zu erfüllen Bedingung und die zweite Bedingung, aber Sie nicht zufriedenstellen die dritte Bedingung. In diesem Fall müssen sich die ersten gehen Zweig und der zweite Zweig, und dann der vierte Zweig, Der Grund dafür ist, dass der andere werden nur bis zum nächsten, wenn binden. Also auch wenn es ein anderes hier, dass nicht unbedingt schaffen eine für beide Seiten exklusiven Kette von allem. Es ist nur der Ausdruck dort mit Boolean Ausdruck 3-- das ist das gegenseitig aus mit der anderen. So dass es möglich ist, und manchmal ganz nützlich, wie gesagt, um eine Kette von erstellen nicht gegenseitig aus Zweigen. Werfen wir einen Blick auf einen anderen Art der bedingten, die Sie nicht vorher in Scratch gesehen haben. Es gibt so etwas wie die switch-Anweisung. Die switch-Anweisung ist Art von ordentlich, weil es eine bedingte Anweisung, die erlaubt Sie unterschiedliche Fälle geben, anstatt sich auf Boolean Ausdrücke, um Entscheidungen für Sie treffen. So zum Beispiel, sagen wir mal, dass ich dieses Programm, und ich frage den Benutzer Eingangs mir bereitzustellen. Also sage ich, int x = Holen Int () und wenn Sie nicht doch vertraut, bekommen int ist eine Funktion, ist auch in der CS50-Bibliothek enthalten, also, wenn Sie CS50.H # include müssen Sie Zugriff auf Int (Get) und alle seine cousins-- GetFloat, GetString, und so weiter. Im Grunde eine Get-Funktion für jeden Datentyp, die wir bereits besprochen haben. So Int x gleich getint. Im Grunde, was passiert ist Ich bin an der Klemme. Ich frage den Benutzer auf, geben Sie eine Zahl ein. Und hier bin ich Schalt was ich tue, je nachdem, auf das, was der Benutzer an der Eingabeaufforderung eingegeben. Also, wenn sie einen eingegeben haben, zu drucken ich ein. Und dann habe ich zu brechen. Wenn sie zwei eingeben, ausdrucken ich zwei. Und dann habe ich zu brechen. Es ist wichtig, Pause zwischen jeweils denn sonst werden Sie durch fallen. Also, wenn ich hatte keine Pausen gibt, und der Benutzer typisierte ein, was passieren würde, ist es wäre eine, zwei, drei zu drucken, sorry. Das ist irgendwie ein merkwürdiges Verhalten, nicht wahr? Man könnte so denken. Aber es gibt tatsächlich einige Fälle, in denen dies könnte eine ziemlich nützliche Sache sein. Also hier ist ein weiteres Beispiel für einen Schalter Aussage, wo ich die Pausen auslassen. Aber ich tue es mit Absicht. Also, was passiert hier? Denken Sie für eine Sekunde. Sie möchten vielleicht sogar, um das Video anzuhalten. Was hier passiert, wenn Der Benutzer gibt vier? Also habe ich den Benutzer zur Eingabe aufgefordert. Und sie stellen den Wert 4. Was gedruckt wird, wenn ich das tun? Auf der vorherigen Folie, gab es Pausen zwischen allen Fällen. Und so es wäre einfach Drucken Vier und dann aufhören. Aber in diesem Fall wird es nicht. Was passiert, ist, dass Sie wird durch jeweils fallen. Also in diesem Fall habe ich meine Fällen organisiert derart, dass, wenn der Benutzer tippt 4, Ich werde zu drucken vier, drei, zwei, eins, starten sie weg. Und wenn sie getippt 5, würde ich beginnen um fünf und das gleiche tun. Wenn sie eingetippt 1, würde ich nur tun, ein, starten sie weg. Also in diesem Fall, ich bin mit ein Schalter Art geschickt, so dass ich die Absicht, fallen durch alle Fälle. Aber in der Regel sind Sie wahrscheinlich werde wollen zwischen allen von ihnen zu brechen, es sei denn, Sie eine Situation haben, wie dieser, wo du bist Art der Nutzung der Tatsache, dass Sie fallen durch die Fälle ohne Pause. Also das ist der zweite der Haupt Arten von bedingten Anweisungen. Die letzte davon ist:? Also ich haben zwei Schnipsel von C-Code hier. Eine auf der linken und eine auf der rechten Seite. Die auf der linken Seite sollte wahrscheinlich ziemlich vertraut sein. Ich habe Int x. Und ich sollte wohl haben die Benutzer gefragt for-- dies sollte wohl Int x sein gleich getint, oder so ähnlich. Und dann werde ich eine Entscheidung treffen. Wenn einige boolesche Ausdruck true zuweisen x den Wert 5. Andernfalls zuweisen x den Wert 6. , Dass auf der linken Seite sollte wahrscheinlich sein ziemlich vertraut aus unserer Diskussion Wenn der eben noch Else. Wären Sie überrascht sein zu wissen, daß die Linie auf der rechten tut genau dasselbe? So spricht man: oder manchmal genannt ternäre Operator. Und es ist ziemlich cool. Es ist in der Regel als eine niedliche Trick verwendet. Aber was es Ihnen erlaubt, zu tun ist, simuliert eine If Else mit wirklich klein, wirklich trivial Kurz bedingte Verzweigungen. Sie in der Regel nicht verwenden:? Wenn Sie hatte sechs Codezeilen zwischen jedem Satz von geschweiften Klammern. Aber wenn Sie nur sind machen eine schnelle Entscheidung, wenn Sie sich auf eine Sache zu tun sind oder der anderen und es ist sehr einfach, könnte dies ein Beispiel, wie sein tun Sie es mit: Der ternäre Operator. So Int x gleich Ausdruck? Das, was nach dem Frage Marke ist, was X-Wert sein wird, wenn Ausdruck wahr ist. Die Sache, nachdem die Doppelpunkt ist, was den Wert von x wäre, wenn der Ausdruck falsch war. So frage ich mich, ist der Ausdruck wahr ist? Falls ja, weisen Sie x den Wert 5. Wenn es nicht, weisen Sie x den Wert 6. Wieder, wie ich gesagt habe. Dies ist in der Regel nur ein netter Trick. Und manchmal, wenn Sie sich wirklich bequem mit ihm, Sie werden dies tun, weil es aussieht irgendwie cool in Ihren Programmen. Generell stelle ich es an Sie jetzt, damit Sie mit ihm vertraut sind wenn Sie es sehen. Aber sicher wissen, dass Sie nicht haben um es in Ihren Code zu schreiben. Aber es ist etwas zu kennen, weil Sie auf jeden Fall begegnen Code-Schnipsel hier und dort, wo dies: Syntax, Alias ​​der ternäre Operator, verwendet wird. So kurze Zusammenfassung auf welche conditionals sind, und was die Optionen sind verfügbar , Sie in C. Wenn Sie haben, und if-else, und wenn sonst, wenn, und so weiter. Sie können Boolesche Ausdrücke verwenden für diejenigen, die Entscheidungen zu treffen. Mit Switch-Anweisungen, die Sie verwenden diskreten Fällen Entscheidungen zu treffen. Sie würden sagen, speziell, wenn es eine, oder wenn es zwei oder ob es drei, Ich werde das tun, oder dieses Ding, oder das Ding. Und: können verwendet werden, zu ersetzen, sehr einfache if-else-Zweige, oder if-else-Ketten zu machen Ihr Code schauen ein wenig Phantasie. Ich bin Doug Lloyd. Und das ist CS50.