Allt í lagi.
Svo nú skulum við tala um eitthvað mjög gagnlegt í programming--
skilyrt yfirlýsingar.
Svo skilyrt orðasambönd leyfa forrit
til að taka ákvarðanir og taka öðruvísi gafflar á veginum, eitthvað
Ég vék að aðeins fyrr, allt eftir þeim gildum á breytum,
eða miðað við það sem notandi inntak á forritari, á the stjórn lína,
eða ef þú ert með hvetja eða eitthvað svoleiðis.
C hefur nokkra mismunandi vegu til tjá skilyrtum orðasamböndum, sem
við einnig stundum mun kalla skilyrt útibú í áætlunum þínum.
Og sumir þeirra eru að fara að líta nokkuð kunnuglegt við þig frá grunni,
þannig að við munum jafnvel draga þá upp hlið við hlið, rétt
þú getur gert það hliðstæðan í höfuðið.
>> Svo, if-- ef er nokkuð einfalt skilyrt.
Ef þú manst frá klóra á hægri hér
þú gæti fyllt í það er sexhyrningi með bláum tjáningu ef mús niður
eða, ef X er minni en 10, eða eitthvað svoleiðis.
Og þá, ef x var minna en 10, eða ef mús var í raun, niður,
allan kóðann inni í þraut stykki myndi framkvæma.
Allt það sem passa inni að C lögun.
>> Á sama hátt, höfum við ef vinstri þar.
Ef Boolean tjáningu, sem ég er bara að nota
í staðinn fyrir einn af Boolean orðasambönd og við ræddum áður,
opinn hrokkið Brace, nálægt hrokkið Brace.
Svo hugsa um opinn hrokkið Brace og lokað hrokkið Brace
eins konar hliðstætt samloku Áhrif ef blokk á hægri
frá grunni.
>> Ef Boolean tjáningu í ef staðhæfing er satt,
þá allir línur af kóða milli hrokkið axlabönd
mun framkvæma í því skyni frá toppi til botn.
Ef Boolean tjáningu er ósatt, við munum
sleppa yfir allt þar á milli hrokkið axlabönd, vegna þess að við bara
langar að fara niður gaffal í veginum ef Boolean tjáning er satt.
>> Við getum tekið þetta einu skrefi frekar með ef annað.
Svo er þetta Scratch blokk nokkuð svipað því sem
við sáum bara annað síðan, nema það tekur tvær mismunandi leiðir sem byggjast
á hvað gerist.
Þannig að ef mús var niður, eða, ef X var minna en 10,
við munum gera allt sem er á milli sem fyrst gaffal, sem fyrst C.,
>> Annars, ef músin er upp, eða X er ekki minna en 10,
við munum gera allt sem í seinni setja.
Og það er hliðstætt því sem þú sérð hér fyrir C. Ef Boolean tjáningu,
gera efni milli fyrst sett af hrokkið axlabönd.
Annars, gera efni milli Annað sett af hrokkið axlabönd.
Þannig að ef Boolean tjáning er satt, við munum
gera hvað sem er á milli fyrsta sett.
Ef Boolean tjáningu er rangar, sem myndi kalla á annað,
og við myndum gera hvað sem er í The second setja af hrokkið axlabönd.
Aftur, toppur til botn, allt línur í milli axlabönd.
>> Í C, það er hægt að búa til if-else if-else keðja.
Í raun er hægt að hafa if-else if-else if-else, ef og svo framvegis og svo framvegis og svo
á.
Í grunni, þetta þarf verpa blokkir.
Þú bætir if-else, og þú þurftir að setja annað inni í annað,
og svo framvegis, og það fékk svona hreiður og flókið.
En C, höfum við ekki að gera það.
Við getum í raun bara það að vera keðja svona.
Aftur, eins og þú might búast við, allt Þessar greinar eru ósamrýmanlegir.
Þú getur bara alltaf farið niður einn af útibúsins.
Ef þetta er satt.
Annars, ef þetta er satt.
Annars gera þetta.
Svo öll fjögur útibú í þetta dæmi eru ósamrýmanlegir.
Það er if-else if-else keðja.
>> Það er mögulegt þó, og stundum mjög gagnlegt,
til að búa til keðju af ekki ósamrýmanlegir útibú.
Í þessu dæmi er, aðeins þriðja og fjórða útibú eru ósamrýmanlegir.
Það gæti verið að þú gætir fullnægja fyrsta skilyrði,
og þú gætir fullnægja annað ástand,
og þú gætir fullnægja Þriðja condition-- í því tilviki
þú vildi fara niður fyrsta útibúið, þá fara niður annað útibú,
þá myndi fara niður í þriðja útibú.
Eða kannski þú uppfyllir fyrsta ástand, og annað skilyrðið,
en þú uppfyllir ekki Þriðja skilyrðið.
Í þessu tilfelli þú ferð niður í fyrsta grein og annað grein,
og Þá fjórða grein,
>> Ástæðan fyrir þessu er sú að annað mun aðeins bindast næsta ef.
Svo jafnvel þó að það er An annar hér, sem
ekki endilega að búa til gagnkvæmt einkarétt keðja af öllu.
Það er bara orðið þar með Boolean
hugtakið 3-- það er ósamrýmanlegir með öðrum.
Svo það er hægt, og stundum alveg gagnlegt,
eins og ég sagði, að búa til keðju af ekki ósamrýmanlegir útibú.
Við skulum taka a líta á mismunandi konar skilyrt, sem
þú hefur ekki séð áður í grunni.
Það er eitthvað sem kallast skiptir yfirlýsingu.
The rofi staðhæfing er konar sniðugt því það er
skilyrt yfirlýsingu sem gerir þú að tilgreina mismunandi tilvikum,
í stað þess að reiða sig á Boolean orðasambönd til að taka ákvarðanir fyrir þig.
Svo til dæmis, við skulum segja að ég hef þetta forrit,
og ég er að spyrja notandann að veita inntak mér.
Svo ég segi, int x = Fá Int (), og ef þú ert ekki kunnuglegur enn,
fá int er fall sem er einnig í CS50 bókasafn,
þannig að ef þú #include cs50.h þú þarft aðgang til að fá Int () og öll hennar
cousins-- GetFloat, Getstring, og svo framvegis.
Grundvallaratriðum einn Fá virka fyrir hvern gögn tegund sem við höfum þegar rætt.
>> Svo Int x er jafnt GetInt.
Í grundvallaratriðum það sem er að gerast er ég í flugstöðinni.
Ég ætla að biðja notandann að slá inn númer.
>> Og hér er ég að skipta hvað ég er að gera, eftir
á það sem notandinn slegið þegar beðið.
Svo ef þeir slegið einn, prenta ég út einn.
Og þá er ég að brjóta.
Ef þeir slá tvær, prenta ég út tvær.
Og þá er ég að brjóta.
Það er mikilvægt að brjóta milli hverju sinni
því annars munt þú falla í gegnum.
Þannig að ef ég vissi ekki hafa allir hlé þar og notandi
slegið einn, hvað myndi gerast er það myndi prenta einn, tveir, þrír, því miður.
Það er góður af undarlega hegðun, ekki satt?
Þú might hugsa svo.
En það eru í raun nokkur tilfelli þar þetta gæti verið nokkuð gagnlegur hlutur.
Svo er hér annað dæmi um rofi Yfirlýsing þar sem ég sleppt hlé.
En ég gera það á tilgangi.
>> Svo hvað gerist hér?
Hugsa um annað.
Þú gætir jafnvel vilja til að gera hlé á vídeó.
>> Hvað gerist hér ef sem notandinn slær fjögur?
Þannig að ég hef spurt notanda fyrir hjálpina.
Og þeir veita gildi 4.
Hvað fær prentuð þegar ég gera það?
Á fyrri mynd, það voru hlé milli öllum tilvikum.
Og svo það myndi bara prenta fjögur og þá hættir.
En í þessu tilfelli, það verður ekki.
Hvað mun gerast er þér mun falla í gegnum hvert tilfelli.
>> Þannig að í þessu tilfelli ég hef skipulagt málum mínum á þann hátt að ef notandinn slær 4,
Ég mun prenta fjórir, þrír, tveir, einn, sprengja burt.
Og ef þeir slegið 5, myndi ég byrja á fimm og gera það sama.
Ef þeir slegið 1, myndi ég bara gera eitt, sprengja burt.
>> Þannig að í þessu tilfelli, ég er að nota rofi konar snjall svo
sem ég ætla að falla í gegnum öll tilvikum.
En almennt þú ert sennilega að vilja til að brjóta á milli allra þeirra,
nema þú hafa a ástand eins og þessi þar sem þú ert
konar fá meira þá staðreynd að þú munt falla í gegnum tilvikum án hlés.
Svo er það önnur af helstu tegundir skilyrt yfirlýsingum.
Síðasta sem er:? Svo ég hafa tvö sýnishorn af C kóða hér.
Einn á vinstri og einn á hægri.
Einn á vinstri ætti sennilega vera nokkuð þekki þig.
>> Ég hef int x.
Og ég ætti sennilega hafa beðið notanda
for-- þetta ætti sennilega að vera Int x jafngildir GetInt, eða eitthvað svoleiðis.
Og þá er ég að taka ákvörðun.
Ef einhver Boolean tjáning er satt, úthluta x verðmæti 5.
Annars úthluta x verðmæti 6.
>> Að á vinstri ætti sennilega að vera nokkuð vel úr umræðu okkar
Verði Else bara í smá stund síðan.
Vilt þú að vera undrandi til vita að línu til hægri
er nákvæmlega sama?
>> Þannig að þetta er kallað:? Eða stundum kallað þríþætt rekstraraðila.
Og það er laglegur kaldur.
Það er venjulega notað sem sætur bragð.
>> En hvað það er hægt að gera er að líkja Ef Else með mjög lítil,
virkilega trivially stutt skilyrt útibú.
Þú almennt myndu ekki nota:? Ef þú átti sex línur af kóða milli hvern hóp
af hrokkið axlabönd.
En ef þú ert bara gera a fljótur ákvörðun,
ef þú ert að fara að gera eitt eða annað og það er mjög einfalt,
þetta gæti verið dæmi um hvernig á að gera það með:? á þríþætt rekstraraðila.
Svo Int x er jafnt tjáningu?
The hlutur eftir spurningunni Merkið er gildi hvað x er
verður ef tjáning er satt.
>> Málið eftir ristli er hvaða gildi x *
væri ef orðið var falskur.
Þannig að ég spyr mig, er tjáning satt?
Ef það er, úthluta x verðmæti 5.
Ef það er ekki, framselja x verðmæti 6.
Aftur, eins og ég sagði.
Þetta er yfirleitt bara sætur bragð.
Og stundum ef þú verður mjög ánægð með það,
þú munt gera þetta vegna þess að það lítur góður af kaldur í áætlunum þínum.
Almennt er ég að kynna það til þú nú svo þú ert kunnuglegur með það
ef þú sérð það.
En vissulega veit að þú ert ekki að skrifa það í einhverju kóðann þinn.
En það er eitthvað að vera kunnugt, því þú munt örugglega lenda
sýnishorn af kóða hér og það þar sem þessi:? setningafræði,
Aka the ternary rekstraraðila, er notað.
>> Svo fljótur yfirlit um hvað conditionals eru,
og hvað möguleikar eru í boði til þín í C. Þú þarft ef og if-else,
og ef annað hvort, et cetera.
Þú getur notað Boolean tjáning fyrir þá að taka ákvarðanir.
>> Með rofi yfirlýsingar þú notar stakur tilvikum til að taka ákvarðanir.
Þú myndir sérstaklega segja, ef það er einn, eða ef það er tveir, eða ef það er þrjú,
Ég ætla að gera þetta, eða þessi hlutur, eða þessi hlutur.
Og:? Er hægt að nota til að skipta mjög einfalt if-else útibú,
eða if-else keðjur til að gera númerið þitt líta smá ímynda.
>> Ég er Doug Lloyd.
Og þetta er CS50.