Dobře. Takže teď pojďme mluvit o něčem opravdu užitečné v programming-- podmíněné příkazy. Tak podmíněné výrazy umožňují programy činit rozhodnutí a mají různé vidličky na silnici, něco Zmiňoval jsem se trochu dřív, v závislosti na hodnotách proměnných, nebo na základě toho, co uživatel zadá na programátor, na příkazovém řádku, nebo pokud máte dotaz nebo něco takového. C má několik různých způsobů, jak expresní podmíněné výrazy, které budeme také někdy se nazývají Podmíněné větvení ve svých programech. A některé z nich jsou bude vypadat docela znáte od nuly, takže budeme jim dokonce čepovat up vedle sebe, jen můžete dělat, že analogii ve vaší hlavě. Takže, if-- pokud je docela jednoduché podmíněné. Pokud si vzpomínáte z poškrábání na pravé straně zde jste mohli vyplnit, že je šestihran s modrým výrazem, pokud myš dolů nebo pokud je x menší než 10, nebo něco takového. A pak, pokud x je menší než 10, nebo v případě, že myš byla ve skutečnosti, dolů, všechny kód vnitřní straně skládačky by se spustit. Všechny ty věci, které se vešly v té C tvaru. Podobně, máme pokud je na tam vlevo. Pokud je logický výraz, což jsem jen pomocí jako náhrada za jednu booleovské výrazy dříve jsme diskutovali, open složená závorka, v blízkosti je složená závorka. Takže myslíte, že otevřené kudrnaté vzpěra a uzavřené složená závorka jako druh analogický s sendvič účinek, pokud bloku na pravé straně od nuly. Jestliže logický výraz v if je pravda, pak všechny řádky kódu Mezi složenými závorkami se bude provádět v pořadí od shora dolů. Jestliže logický výraz je falešný, budeme přeskočit všechno mezi tím složené závorky, protože jen my chcete jít dolů, že rozcestí pokud je výraz pravdivý. Můžeme tento jeden krok Dále se v případě jiného. Tak tohle Scratch blok dost podobná té, jsme viděli právě před druhou, s výjimkou to trvá dvě různé cesty vycházející o tom, co se stane. Takže v případě, že myš byla dole, nebo jestliže X je menší než 10, uděláme vše, co je mezi tím že jako první vidlice, že nejprve C., Jinak, pokud je myš up, nebo x není menší než 10, uděláme vše, co ve druhém setu. A to je to analogické s co vidíte zde C. Pokud logický výraz, dělat věci mezi První sada složených závorek. Else, dělat věci mezi Druhá sada složených závorek. Takže pokud Boolean výraz je pravda, my budeme dělat, co je mezi první sady. Pokud je logický výraz je false, že mohou spustit jiný, a my bychom dělat, co je v druhá sada složených závorek. Opět platí, že shora dolů, to vše čáry mezi závorky. V jazyce C, je možné vytvořit if-else if-else řetězec. Ve skutečnosti můžete mít if-else if-else if-jinak, je-li, a tak dále a tak dále a tak na. Scratch, to vyžaduje vnoření bloky. Přidáte if-else, a vy jste museli dát ještě jednu uvnitř jiného, a tak dále, a to má druh z vnořené a komplikovaná. Ale C, nemusíme dělat. Můžeme vlastně jen mít to být řetězec jako je tato. Opět, jak se dalo očekávat, všechny Tyto obory se vzájemně vylučují. Můžete jen někdy jít po jedné pobočky. Pokud je to pravda. V opačném případě, pokud je to pravda. V opačném případě, pokud je to pravda. V opačném případě to udělat. Takže všechny čtyři z poboček v této Příkladem jsou vzájemně vylučují. Je to if-else if-else řetězec. Je možné, i když, a někdy velmi užitečné, k vytvoření řetězce není vzájemně se vylučující větví. V tomto příkladu, pouze třetí a čtvrté větve se vzájemně vylučují. Mohlo by se stát, že byste mohli splňují první podmínku, a ty by mohly uspokojit druhá podmínka, a ty by mohly uspokojit Třetí condition-- v takovém případě bys jít dolů první větev, pak jít dolů druhou větev, pak byste jít dolů třetí větev. Nebo snad uspokojit první stavu, a druhý stav, ale nesplňují třetí podmínka. V tomto případě musíte jít dolů jako první větev a druhá větev, a pak čtvrtá větev, Důvodem pro toto je, že jinak bude vázat jen na nejbližší, pokud. Takže i když je tu else tady, že nevytváří nutně vzájemně Exkluzivní řetěz všeho. Je to jen výraz tam s Boolean Výraz 3-- to je vzájemně se vylučující s jiným. Tak to je možné, a někdy docela užitečné, jak jsem řekl, vytvořit řetěz které se vzájemně nevylučují větví. Pojďme se podívat na jiný druh podmíněný, který jste ještě neviděli v Scratch. Je tu něco, co nazývá Příkaz switch. Příkaz switch je druh elegantní, protože to je podmíněný příkaz, který umožňuje určit různé případy, namísto spoléhání se na Boolean výrazy rozhodovat za vás. Tak například, řekněme, že mám tento program, a já se ptám uživatele poskytovat informace pro mě. Takže říkám, int x = Get Int (), a pokud nejste obeznámeni ještě, dostat int je funkce, která je také v knihovně CS50, takže pokud jste #include CS50.H budete mít Přístup k nám int () a všechny jeho cousins-- GetFloat, GetString, a tak dále. V podstatě člověk Získejte funkce pro každého datový typ, který jsme již diskutovali. Takže Int x rovná GetInt. V podstatě to, co se děje je, že jsem v terminálu. Žádám, aby uživatel zadat číslo. A tady jsem přepínání to, co dělám, závislosti na tom, co uživatel napsal na příkazovém řádku. Takže když napsal jeden, jsem vytisknout jednu. A pak jsem se zlomit. Pokud se Druh byt, jsem vytisknout dvě. A pak jsem se zlomit. Je důležité, aby zlomit mezi každém případě protože jinak budete propadnout. Takže když jsem neměl jakýkoli přestávky tam, a uživatel zadaný člověk, co by se stalo, je to by se vytisknout jednu, dvě, tři, sorry. To je trochu podivné chování, je to tak? Dalo by se, že ano. Ale tam jsou vlastně některých případech, kdy to by mohlo být docela užitečná věc. Tak tady je další příklad spínače prohlášení, kde jsem vynechat přestávky. Ale já jsem to schválně. Tak tady, co se stane? Myslíš, že na vteřinu. Můžete dokonce chtějí, aby video pozastavit. Co se stane, když se zde uživatel zadá čtyři? Takže jsem požádal uživatele pro vstup. A poskytují hodnotu 4. To, co se vytiskne, když jsem to udělal? Na předchozí snímek, tam bylo přestávky mezi všech případech. A tak by to prostě vytisknout čtyři a pak se zastaví. Ale v tomto případě, to nebude. Co se stane, je vám bude spadat přes každého případu. Takže v tomto případě jsem zorganizoval své případy takovým způsobem, že pokud uživatel zadá 4, Já se vytiskne čtyři, tři, dva, jedna, odstartovat. A pokud zadali 5, bych začít v pět, a udělat to samé. Pokud se zadali 1, udělal bych to prostě jedno, Blast Off. Takže v tomto případě, jsem pomocí spínač druh chytře tak že nemám v úmyslu na podzim přes všechny případy. Ale obecně jste pravděpodobně bude chtějí rozbít mezi všemi z nich, pokud máte situaci jako je tato, kam druh využití skutečnost, že budete propadnou případů bez přestávky. Tak to je druhá z hlavní typy podmíněné příkazy. Posledním z nich je:? Tak jsem se mají dva úryvky C kód zde. Jeden na levé straně a jeden na pravé straně. Ten na levé straně by měl asi docela znáte. Mám Int x. A já jsem asi měl požádali uživatele for-- to by mělo pravděpodobně Int x rovná GetInt, nebo něco takového. A pak jsem dělat rozhodnutí. Pokud se některé logický výraz je pravda, přiřaďte x hodnotě 5. V opačném případě, přiřaďte x hodnotou 6. Že na levé straně by pravděpodobně docela známý z naší diskuse z Pokud Else před chvílí. Chtěli byste být překvapeni, vědět, že čárou na pravé straně dělá přesně to samé? Tak tomu se říká:? Nebo někdy volal ternární operátor. A je to docela v pohodě. Je to obvykle používá jako roztomilý trik. Ale co to vám umožní udělat, je simulovat If Else s opravdu malé, Opravdu triviálně krátký podmíněné větve. Ty obecně nebude používat:? Pokud vás Měl šest řádky kódu mezi každou sadu složených závorek. Ale pokud jste jen dělat rychlé rozhodnutí, pokud budete dělat jednu věc nebo druhý, a je to velmi jednoduché, toto by mohlo být příkladem toho, jak se to s:? ternární operátor. Takže Int x rovná se výraz? Ta věc po otázce Značka je to, co je hodnota x Bude-li výraz je pravdivý. Ta věc po tlustého střeva je to, co hodnota X je by v případě, že výraz byl nepravdivý. Takže se ptám sám sebe, je výraz pravdivý? Pokud je, přiřadit x hodnotě 5. Pokud to tak není, přiřadit x hodnotou 6. Opět, stejně jako jsem řekl. To je obvykle jen roztomilý trik. A někdy, když se stanete opravdu pohodlně s tím, vy to budete dělat, protože to vypadá, docela fajn ve svých programech. Obecně jsem jej předloží Nyní tak, že jste obeznámeni s tím pokud ji vidět. Ale jistě víte, že nemáte napsat jej do žádné z kódu. Ale to je něco, aby se seznámili s, protože budete určitě narazíte úryvky kódu zde a tam, kde tato:? syntax, AKA ternární operátor, je používán. Tak rychlý přehled o jaké jsou podmiňovací způsob, a jaké jsou k dispozici možnosti vám v C. Máte-li a if-else, a je-li else if, a tak dále. Můžete použít logických výrazů pro ty, kteří se rozhodují. S prohlášení spínač používáte diskrétní případy rozhodovat. Ty by se konkrétně říci, jestli je to jednu, nebo jestli je to dva, nebo jestli je to tři, Udělám tuto věc, nebo ta věc, nebo ta věc. A:? Může být použit k nahrazení Velmi jednoduchý if-else větve, nebo-li-else řetězy, aby se váš kód vypadat trochu fantazie. Jsem Doug Lloyd. A to je CS50.