Dobre.
Takže teraz poďme hovoriť o niečom naozaj užitočné v programming--
podmienené príkazy.
Tak podmienené výrazy umožňujú programy
robiť rozhodnutia a majú rôzne vidličky na ceste, niečo
Spomínal som sa trochu skôr, v závislosti na hodnotách premenných,
alebo na základe toho, čo užívateľ zadá na programátor, na príkazovom riadku,
alebo ak máte dotaz alebo niečo také.
C má niekoľko rôznych spôsobov, ako expresné podmienené výrazy, ktoré
budeme tiež niekedy sa nazývajú Podmienené vetvenia vo svojich programoch.
A niektoré z nich sú bude vyzerať docela poznáte od nuly,
takže budeme im dokonca čapovať up vedľa seba, len
môžete robiť, že analógiu vo vašej hlave.
>> Takže, if-- ak je celkom jednoduché podmienené.
Ak si spomínate z poškriabaniu na pravej strane tu
ste mohli vyplniť, že je šesťhran s modrým výrazom, pokiaľ myš dole
alebo ak je x menšie ako 10, alebo niečo také.
A potom, ak x je menšia ako 10, alebo v prípade, že myš bola v skutočnosti, dole,
všetky kód vnútornej strane skladačky by sa spustiť.
Všetky tie veci, ktoré sa zmestili v tej C tvare.
>> Podobne, máme pokiaľ je na tam vľavo.
Ak je logický výraz, čo som len pomocou
ako náhrada za jednu booleovské výrazy skôr sme diskutovali,
open zložená zátvorka, v jeho blízkosti je zložená zátvorka.
Takže myslíte, že otvorené kučeravé vzpera a uzavreté zložená zátvorka
ako druh analogický s sendvič účinok, ak bloku na pravej strane
od nuly.
>> Ak logický výraz v if je pravda,
potom všetky riadky kódu Medzi zloženými zátvorkami
sa bude vykonávať v poradí od zhora nadol.
Ak logický výraz je falošný, budeme
preskočiť všetko medzi tým zložené zátvorky, pretože len my
chcete ísť dole, že rázcestí ak je výraz pravdivý.
>> Môžeme tento jeden krok Ďalej sa v prípade iného.
Tak toto Scratch blok dosť podobná tej,
sme videli práve pred druhou, s výnimkou to trvá dve rôzne cesty vychádzajúce
o tom, čo sa stane.
Takže v prípade, že myš bola dole, alebo ak X je menšia ako 10,
urobíme všetko, čo je medzi tým že ako prvý vidlica, že najprv C.,
>> Inak, ak je myš up, alebo x nie je menšia ako 10,
urobíme všetko, čo v druhom sete.
A to je to analogické s čo vidíte tu C. Ak logický výraz,
robiť veci medzi Prvá sada zložených zátvoriek.
Else, robiť veci medzi Druhá sada zložených zátvoriek.
Takže ak Boolean výraz je pravda, my budeme
robiť, čo je medzi prvou sady.
Ak je logický výraz je false, že môžu spustiť iný,
a my by sme robiť, čo je v druhá sada zložených zátvoriek.
Opäť platí, že zhora nadol, to všetko čiary medzi zátvorky.
>> V jazyku C, je možné vytvoriť if-else if-else reťazec.
V skutočnosti môžete mať if-else if-else if-inak, ak je, a tak ďalej a tak ďalej a tak
na.
Scratch, to vyžaduje vnorenia bloky.
Pridáte if-else, a vy ste museli dať ešte jednu vnútri iného,
a tak ďalej, a to má druh z vnorené a komplikovaná.
Ale C, nemusíme robiť.
Môžeme vlastne len mať to byť reťazec ako je táto.
Opäť, ako sa dalo očakávať, všetky Tieto odbory sa navzájom vylučujú.
Môžete len niekedy ísť po jednej pobočky.
Ak je to pravda.
V opačnom prípade, ak je to pravda.
V opačnom prípade to urobiť.
Takže všetky štyri z pobočiek v tejto Príkladom sú vzájomne vylučujú.
Je to if-else if-else reťazec.
>> Je možné, aj keď, a niekedy veľmi užitočné,
na vytvorenie reťazca nie je vzájomne sa vylučujúce konárov.
V tomto príklade, iba tretie a štvrtej vetvy sa navzájom vylučujú.
Mohlo by sa stať, že by ste mohli spĺňajú prvú podmienku,
a tie by mohli uspokojiť druhá podmienka,
a tie by mohli uspokojiť Tretí condition-- v takom prípade
by si ísť dole prvá vetva, potom ísť dole druhú vetvu,
potom by ste ísť dole tretia vetva.
Alebo snáď uspokojiť prvý stavu, a druhý stav,
ale nespĺňajú tretia podmienka.
V tomto prípade musíte ísť dole ako prvý vetva a druhá vetva,
a potom štvrtá vetva,
>> Dôvodom pre toto je, že inak bude viazať len na najbližší, ak.
Takže aj keď je tu else tu, že
nevytvára nevyhnutne vzájomne Exkluzívny reťaz všetkého.
Je to len výraz tam s Boolean
Výraz 3-- to je vzájomne sa vylučujúce s iným.
Tak to je možné, a niekedy celkom užitočné,
ako som povedal, vytvoriť reťaz ktoré sa navzájom nevylučujú konárov.
Poďme sa pozrieť na iný druh podmienený, ktorý
ste ešte nevideli v Scratch.
Je tu niečo, čo nazýva Príkaz switch.
Príkaz switch je druh elegantný, pretože to je
podmienený príkaz, ktorý umožňuje určiť rôzne prípady,
namiesto spoliehania sa na Boolean výrazy rozhodovať za vás.
Tak napríklad, povedzme, že mám tento program,
a ja sa pýtam užívateľa poskytovať informácie pre mňa.
Takže hovorím, int x = Get Int (), a ak nie ste oboznámení ešte,
dostať int je funkcia, ktorá je tiež v knižnici CS50,
takže ak ste #include CS50.H budete mať Prístup k nám int () a všetky jeho
cousins-- GetFloat, GetString, a tak ďalej.
V podstate človek Získajte funkcie pre každého dátový typ, ktorý sme už diskutovali.
>> Takže Int x rovná GetInt.
V podstate to, čo sa deje je, že som v termináli.
Žiadam, aby užívateľ zadať číslo.
>> A tu som prepínanie to, čo robím, závislosti
na tom, čo užívateľ napísal na príkazovom riadku.
Takže keď napísal jeden, som vytlačiť jednu.
A potom som sa zlomiť.
Ak sa Druh byt, som vytlačiť dve.
A potom som sa zlomiť.
Je dôležité, aby zlomiť medzi každom prípade
pretože inak budete prepadnúť.
Takže keď som nemal akýkoľvek prestávky tam, a užívateľ
zadaný človek, čo by sa stalo, je to by sa vytlačiť jednu, dve, tri, sorry.
To je trochu podivné správanie, je to tak?
Dalo by sa, že áno.
Ale tam sú vlastne niektorých prípadoch, keď to by mohlo byť celkom užitočná vec.
Tak tu je ďalší príklad spínače vyhlásenie, kde som vynechať prestávky.
Ale ja som to schválne.
>> Tak tu, čo sa stane?
Myslíš, že na sekundu.
Môžete dokonca chcú, aby video pozastaviť.
>> Čo sa stane, keď sa tu užívateľ zadá štyri?
Takže som požiadal používateľa pre vstup.
A poskytujú hodnotu 4.
To, čo sa vytlačí, keď som to urobil?
Na predchádzajúcu snímku, tam bolo prestávky medzi všetkých prípadoch.
A tak by to jednoducho vytlačiť štyri a potom sa zastaví.
Ale v tomto prípade, to nebude.
Čo sa stane, je vám bude spadať cez každého prípadu.
>> Takže v tomto prípade som zorganizoval svoje prípady takým spôsobom, že ak užívateľ zadá 4,
Ja sa vytlačí štyri, tri, dva, jedna, odštartovať.
A ak zadali 5, by som začať v päť, a urobiť to isté.
Ak sa zadali 1, urobil by som to proste jedno, Blast Off.
>> Takže v tomto prípade, som pomocou spínač druh chytro tak
že nemám v úmysle na jeseň cez všetky prípady.
Ale všeobecne ste pravdepodobne bude chcú rozbiť medzi všetkými z nich,
ak máte situáciu ako je táto, kam
druh využitie skutočnosť, že budete prepadnú prípadov bez prestávky.
Tak to je druhá z hlavnej typy podmienené príkazy.
Posledným z nich je :? Tak som sa majú dva úryvky C kód tu.
Jeden na ľavej strane a jeden na pravej strane.
Ten na ľavej strane by mal asi docela poznáte.
>> Mám Int x.
A ja som asi mal požiadali užívateľa
for-- to by malo pravdepodobne Int x rovná GetInt, alebo niečo také.
A potom som robiť rozhodnutia.
Ak sa niektoré logický výraz je pravda, priraďte x hodnote 5.
V opačnom prípade, priraďte x hodnotou 6.
>> Že na ľavej strane by pravdepodobne docela známy z našej diskusie
z Ak Else pred chvíľou.
Chceli by ste byť prekvapení, vedieť, že čiarou na pravej strane
robí presne to isté?
>> Tak tomu sa hovorí :? Alebo niekedy volal ternárnu operátor.
A je to celkom v pohode.
Je to zvyčajne používa ako roztomilý trik.
>> Ale čo to vám umožní urobiť, je simulovať If Else s naozaj malé,
Naozaj triviálne krátky podmienené vetvy.
Tie všeobecne nebude používať :? Ak vás Mal šesť riadky kódu medzi každou sadu
zložených zátvoriek.
Ale ak ste len robiť rýchle rozhodnutia,
ak budete robiť jednu vec alebo druhý, a je to veľmi jednoduché,
toto by mohlo byť príkladom toho, ako sa to s :? ternárnu operátor.
Takže Int x rovná sa výraz?
Tá vec po otázke Značka je to, čo je hodnota x
Ak bude výraz je pravdivý.
>> Tá vec po hrubého čreva je to, čo hodnota X je
by v prípade, že výraz bol nepravdivý.
Takže sa pýtam sám seba, je výraz pravdivý?
Ak je, priradiť x hodnote 5.
Ak to tak nie je, priradiť x hodnotou 6.
Opäť, rovnako ako som povedal.
To je zvyčajne len roztomilý trik.
A niekedy, keď sa stanete naozaj pohodlne s tým,
vy to budete robiť, pretože to vyzerá, celkom fajn vo svojich programoch.
Všeobecne som ho predloží Teraz tak, že ste oboznámení s tým
pokiaľ ju vidieť.
Ale iste viete, že nemáte napísať ho do žiadnej z kódu.
Ale to je niečo, aby sa zoznámili s, pretože budete určite narazíte
úryvky kódu tu a tam, kde táto :? syntax,
AKA ternárnu operátor, je používaný.
>> Tak rýchly prehľad o aké sú podmieňovací spôsob,
a aké sú k dispozícii možnosti vám v C. Ak máte a if-else,
a ak je else if, a tak ďalej.
Môžete použiť booleanu pre tých, ktorí sa rozhodujú.
>> S vyhlásenie spínač používate diskrétne prípady rozhodovať.
Tie by sa konkrétne povedať, či je to jednu, alebo či je to dva, alebo či je to tri,
Urobím túto vec, alebo tá vec, alebo tá vec.
A :? Môže byť použitý na nahradenie Veľmi jednoduchý if-else vetvy,
alebo ak-else reťaze, aby sa váš kód vyzerať trochu fantázie.
>> Som Doug Lloyd.
A to je CS50.