Selvﾃ､.
Joten Nyt puhua jostain todella hyﾃｶdyllinen programming--
ehtolauseet.
Niin ehdollinen ilmaisuja anna ohjelmat
tehdﾃ､ pﾃ､ﾃ､tﾃｶksiﾃ､ ja ottaa eri haarukat tiellﾃ､, jotain
Viittasin hieman aiemmin, riippuen muuttujien arvot,
tai sen perusteella, mitﾃ､ kﾃ､yttﾃ､jﾃ､ tuotantopanoksia ohjelmoija, komentoriviltﾃ､,
tai jos sinulla on nopea tai jotain sellaista.
C on pari eri tapoja ilmaista ehdollista ilmaisuja, jotka
me myﾃｶs joskus soittaa ehdollinen haara omien ohjelmiensa.
Ja jotkut nﾃ､istﾃ､ ovat menossa katsomaan melko tutulta tyhjﾃ､stﾃ､,
joten me jopa vetﾃ､ﾃ､ ne ylﾃｶs vierekkﾃ､in, vain
voit tehdﾃ､ ettﾃ､ vastaavasti pﾃ､ﾃ､hﾃ､si.
>> Joten, if-- jos on melko yksinkertainen ehdollinen.
Jos muistatte alkaen naarmu tﾃ､ﾃ､llﾃ､
voit tﾃ､yttﾃ､ﾃ､ ettﾃ､ on Hexagon sininen ilme jos hiiri alas
tai jos x on pienempi kuin 10, tai jotain sellaista.
Ja sitten, jos x on pienempi kuin 10, tai jos hiiri oli itse asiassa, alas,
kaikki koodi sisﾃ､llﾃ､ palapelin pala olisi toteuttaa.
Kaikki asiat, jotka sopivat sisﾃ､llﾃ､ ettﾃ､ C muoto.
>> Samoin meillﾃ､ on jos vasemmalla siellﾃ､.
Jos ehtolauseke, joissa minulla vain kﾃ､yttﾃ､mﾃ､llﾃ､
korvikkeena yhden Boolen ilmaisuja me aiemmin keskusteltu,
avoin kihara ahdin, lﾃ､hellﾃ､ kihara ahdin.
Niin ajattele avoin kihara ahdin ja suljettu kihara ahdin
koska erﾃ､ﾃ､nlainen analoginen sandwich vaikutus, jos palkin
tyhjﾃ､stﾃ､.
>> Jos Boolen lauseke if-lauseessa on totta,
sitten kaikki riviﾃ､ koodia vﾃ､lillﾃ､ aaltosulkeiden
tulee suorittaa jotta ylhﾃ､ﾃ､ltﾃ､ alas.
Jos Boolen lauseke on vﾃ､ﾃ､rﾃ､, kﾃ､ymme
ohittaa kaikkea siltﾃ､ vﾃ､liltﾃ､ aaltosulkumerkkien, koska me vain
halua mennﾃ､ alas, ettﾃ､ tienhaarasta jos Boolen lauseke on tosi.
>> Voimme ottaa tﾃ､mﾃ､n askeleen edelleen, jos muuta.
Joten tﾃ､mﾃ､ Scratch lohko on melko samanlainen kuin
nﾃ､imme vain toinen sitten, paitsi se kestﾃ､ﾃ､ kaksi eri polkuja perustuu
mitﾃ､ tapahtuu.
Joten jos hiiri oli alas, tai jos x on pienempi kuin 10,
teemme kaiken, joka on siltﾃ､ vﾃ､liltﾃ､ ettﾃ､ ensimmﾃ､inen haarukka, ettﾃ､ ensimmﾃ､inen C,
>> Muussa tapauksessa, jos hiiri on ylﾃｶs tai x ei ole pienempi kuin 10,
teemme kaiken toisesta.
Ja se analogisia mitﾃ､ nﾃ､et tﾃ､ﾃ､llﾃ､ C. Jos ehtolauseke,
tehdﾃ､ juttuja vﾃ､lillﾃ､ ensimmﾃ､iset aaltosulkeita.
Else, tehdﾃ､ juttuja vﾃ､lillﾃ､ toinen joukko aaltosulkeita.
Joten jos Boolen lauseke on tosi, kﾃ､ymme
tehdﾃ､ mitﾃ､ on ensimmﾃ､isen sarjan.
Jos Boolen lauseke on vﾃ､ﾃ､rﾃ､, ettﾃ､ johtaisi muuta,
ja haluamme tehdﾃ､ mitﾃ､ n toinen joukko aaltosulkeita.
Jﾃ､lleen ylhﾃ､ﾃ､ltﾃ､ alas, kaikki linjat vﾃ､lillﾃ､ olkaimet.
>> C, on mahdollista luoda jos-else if-else ketju.
Itse voit olla if-else if-else jos-else, jos, ja niin edelleen ja niin edelleen ja niin
pﾃ､ﾃ､lle.
Scratch Tﾃ､mﾃ､ edellytti pesivﾃ､t lohkot.
Lisﾃ､ﾃ､t if-else, ja sinun piti laittaa toinen sisﾃ､llﾃ､ muuta,
ja niin edelleen, ja se sai laji sisﾃ､kkﾃ､isiﾃ､ ja monimutkainen.
Mutta C, meidﾃ､n ei tarvitse tehdﾃ､ sitﾃ､.
Voimme oikeastaan 窶銀久ain olla se ketju nﾃ､in.
Jﾃ､lleen, kuten arvata saattaa, kaikki nﾃ､mﾃ､ oksat ovat toisensa poissulkevia.
Voit aina vain mennﾃ､ alas yksi haara.
Jos tﾃ､mﾃ､ on totta.
Muuten, jos tﾃ､mﾃ､ on totta.
Muuten, tehdﾃ､ tﾃ､mﾃ､n.
Joten kaikki neljﾃ､ oksat tﾃ､ssﾃ､ Esimerkiksi ovat toisensa poissulkevia.
Se jos-else if-else ketju.
>> Se on kuitenkin mahdollista, ja joskus erittﾃ､in hyﾃｶdyllinen,
luoda ketju ei toisensa poissulkevia oksat.
Tﾃ､ssﾃ､ esimerkissﾃ､, vain kolmas ja Neljﾃ､s oksat ovat toisensa poissulkevia.
Voi olla, ettﾃ､ voisit tﾃ､ytﾃ､ ensimmﾃ､istﾃ､ kunnossa,
ja voit tyydyttﾃ､ﾃ､ Toisen edellytyksen,
ja voit tﾃ､yttﾃ､ﾃ､ kolmas condition-- jolloin
menisit alas ensimmﾃ､inen haara, sitten mennﾃ､ alas toinen haara,
niin voisitte mennﾃ､ alas kolmas osa.
Tai ehkﾃ､ tﾃ､ytﾃ､ ensimmﾃ､istﾃ､ kunnossa, ja toinen edellytys,
mutta et tﾃ､ytﾃ､ kolmas edellytys.
Tﾃ､ssﾃ､ tapauksessa mennﾃ､ alas ensimmﾃ､inen haara ja toinen haara,
ja sitten neljﾃ､s haara,
>> Syynﾃ､ tﾃ､hﾃ､n on se, ettﾃ､ muu sitovat vain lﾃ､himpﾃ､ﾃ､n jos.
Joten vaikka siellﾃ､ muu tﾃ､ﾃ､llﾃ､, ettﾃ､
ei vﾃ､lttﾃ､mﾃ､ttﾃ､ luotava molemminpuolisesti yksinomainen ketju kaiken.
Se on vain ilmaus siellﾃ､ Boolen
ilmaisu 3-- se sulkevat toisensa pois muuta.
Joten on mahdollista, ja joskus varsin hyﾃｶdyllinen,
kuten sanoin, luoda ketju ole toisiaan poissulkevia oksia.
Katsotaanpa katsomaan eri jonkinlaisen ehdollisen, joka
et ole ennen nﾃ､hty Scratch.
Siinﾃ､ on jotain kutsutaan kytkin selvitys.
Kytkin selvitys on sellainen siisti, koska se on
ehdon, jonka avulla voit mﾃ､ﾃ､rittﾃ､ﾃ､ eri tapauksissa
sijaan, ettﾃ､ turvaudutaan Boolen ilmaisuja tekemﾃ､ﾃ､n pﾃ､ﾃ､tﾃｶksiﾃ､ puolestasi.
Niinpﾃ､ esimerkiksi, sanokaamme ettﾃ､ minulla on tﾃ､mﾃ､ ohjelma,
ja olen pyytﾃ､nyt kﾃ､yttﾃ､jﾃ､ tarjota aineksia minulle.
Siksi sanon, int x = Get Int (), ja jos et tunne vielﾃ､,
saada int on toiminto, joka on sisﾃ､ltyy myﾃｶs CS50 kirjasto,
joten jos #include CS50.H joudut pﾃ､ﾃ､sy Get Int () ja kaikki sen
cousins-- GetFloat, GetString, ja niin edelleen.
Periaatteessa yksi saat toiminto jokaista tietotyyppi, ettﾃ､ olemme jo keskustelleet.
>> Joten Int X vastaa GetInt.
Periaatteessa mitﾃ､ tapahtuu on olen terminaalissa.
Pyydﾃ､n kﾃ､yttﾃ､jﾃ､ kirjoittaa numero.
>> Ja tﾃ､ssﾃ､ olen kytkentﾃ､ mitﾃ､ teen, riippuen
mitﾃ､ kﾃ､yttﾃ､jﾃ､ kirjoittanut kehoitteeseen.
Joten jos he kirjoitit yksi, minﾃ､ tulostaa yksi.
Ja sitten rikon.
Jos he kirjoittavat kaksi, minﾃ､ tulostaa kaksi.
Ja sitten rikon.
On tﾃ､rkeﾃ､ﾃ､ tauko kulloinkin
koska muuten putoat lﾃ､pi.
Joten jos minulla ei ollut mitﾃ､ﾃ､n taukoja siellﾃ､, ja kﾃ､yttﾃ､jﾃ､
konekirjoitettu yksi, mitﾃ､ tapahtuisi on se tulostaisi yksi, kaksi, kolme, sorry.
Se on outoa kﾃ､yttﾃ､ytymistﾃ､, eikﾃｶ?
Saatat ajatella niin.
Mutta on todella joitakin tapauksia, joissa tﾃ､mﾃ､ voisi olla melko hyﾃｶdyllinen asia.
Joten tﾃ､ssﾃ､ on toinen esimerkki kytkimen selitystﾃ､, jos minﾃ､ jﾃ､ttﾃ､ﾃ､ taukoja.
Mutta teen sen tahallani.
>> Joten mitﾃ､ tﾃ､ﾃ､llﾃ､ tapahtuu?
Usko, ettﾃ､ toinen.
Saatat jopa haluta keskeyttﾃ､ﾃ､ videon.
>> Mitﾃ､ tﾃ､ﾃ､llﾃ､ tapahtuu, jos kﾃ､yttﾃ､jﾃ､ tyypit neljﾃ､?
Joten olen pyytﾃ､nyt kﾃ､yttﾃ､jﾃ､ syﾃｶttﾃ､ﾃ､.
Ja ne tarjoavat arvo 4.
Mikﾃ､ saa tulostaa, kun minﾃ､, ettﾃ､?
Edellisestﾃ､ dia oli taukoja vﾃ､lillﾃ､ kaikissa tapauksissa.
Ja niin se olisi vain tulostaa neljﾃ､ ja sitten lopettaa.
Mutta tﾃ､ssﾃ､ tapauksessa, se ei.
Mitﾃ､ tapahtuu on sinulle putoavat lﾃ､pi tapauskohtaisesti.
>> Joten tﾃ､ssﾃ､ tapauksessa olen jﾃ､rjestellyt tapauksissa siten, ettﾃ､ jos kﾃ､yttﾃ､jﾃ､ kirjoittaa 4,
Minﾃ､ tulostaa neljﾃ､, kolme, kaksi, yksi, blast pois.
Ja jos he kirjoitit 5, haluan aloittaa viiden ja tehdﾃ､ samoin.
Jos ne kirjoitetaan 1, olisin vain tehdﾃ､ yksi, blast pois.
>> Joten tﾃ､ssﾃ､ tapauksessa, olen kﾃ､yttﾃ､en kytkin erﾃ､ﾃ､nlainen taitavasti niin
ettﾃ､ en aio laskea lﾃ､pi kaikki tapaukset.
Mutta yleensﾃ､ olet todennﾃ､kﾃｶisesti aio halua rikkoa vﾃ､lillﾃ､ ne kaikki,
ellei sinulla ole tilanne kuten tﾃ､mﾃ､, jos olet
Tﾃ､llainen hyﾃｶdyntﾃ､mﾃ､llﾃ､ sitﾃ､, ettﾃ､ sinun kuuluvat lﾃ､pi tapauksissa ilman taukoa.
Niin, ettﾃ､ toinen tﾃ､rkeﾃ､ tyyppisiﾃ､ ehtolauseet.
Joista viimeinen on?: Olen siis on kaksi katkelmia C-koodia tﾃ､ssﾃ､.
Toinen vasemmalla ja toinen oikealla.
Yksi vasemmalla pitﾃ､isi todennﾃ､kﾃｶisesti melko tuttu.
>> Minulla on Int x.
Ja minun olisi ovat pyytﾃ､neet kﾃ､yttﾃ､jﾃ､
for-- tﾃ､mﾃ､ olisi todennﾃ､kﾃｶisesti Int x vastaa GetInt, tai jotain sellaista.
Ja sitten olen tekemﾃ､ssﾃ､ pﾃ､ﾃ､tﾃｶstﾃ､.
Jos jotkut ehtolauseke on totta, mﾃ､ﾃ､rittﾃ､ﾃ､ x arvo 5.
Muuten, antaa X arvo 6.
>> Ettﾃ､ vasemmalla pitﾃ､isi luultavasti tuttuja meidﾃ､n keskustelu
If Else vain hetki sitten.
Olisitko yllﾃ､ttynyt tietﾃ､ﾃ､ ettﾃ､ linja oikealla
tekee tﾃ､smﾃ､lleen sama asia?
>> Niin tﾃ､tﾃ､ kutsutaan?: Tai joskus kutsutaan kolmen komponentin operaattori.
Ja se on aika siistiﾃ､.
Se on yleensﾃ､ kﾃ､ytetﾃ､ﾃ､n sﾃｶpﾃｶ temppu.
>> Mutta mitﾃ､ sen avulla voit tehdﾃ､ on simuloida Jos Else todella pieni,
todella triviaalisti lyhyt ehdollisen oksat.
Sinun yleensﾃ､ ei kﾃ､ytﾃ､?: Jos oli kuusi riviﾃ､ koodia jokaisen sarjan
kihara housunkannattimet.
Mutta jos olet vain joten nopea pﾃ､ﾃ､tﾃｶs,
jos aiot tehdﾃ､ yksi asia tai muut ja se on hyvin yksinkertainen,
Tﾃ､mﾃ､ saattaa olla esimerkki siitﾃ､, miten tehdﾃ､ sen kanssa?: kolmen komponentin operaattori.
Joten Int X vastaa ilmaisu?
Asia jﾃ､lkeen kysymys merkki on mitﾃ､ x arvo
on jos lauseke on tosi.
>> Asia jﾃ､lkeen paksusuoli on mitﾃ､ X: n arvo
olisi, jos lauseke oli vﾃ､ﾃ､rﾃ､.
Joten pyydﾃ､n itseltﾃ､ni, on ilmaus totta?
Jos se on, antaa X arvo 5.
Jos se ei ole, mﾃ､ﾃ､rittﾃ､ﾃ､ x arvo 6.
Jﾃ､lleen kuten sanoin.
Tﾃ､mﾃ､ on yleensﾃ､ vain sﾃｶpﾃｶ temppu.
Ja joskus, jos tulet todella mukavalta,
voit tehdﾃ､ tﾃ､mﾃ､n, koska se nﾃ､yttﾃ､ﾃ､ erﾃ､ﾃ､nlainen jﾃ､ﾃ､htyﾃ､ omien ohjelmiensa.
Yleensﾃ､ olen sen esittﾃ､mistﾃ､ nyt niin olet perehtynyt se
jos nﾃ､et sen.
Mutta varmasti tietﾃ､ﾃ､ sinun ei tarvitse kirjoittaa sitﾃ､ millﾃ､ﾃ､n koodistasi.
Mutta se on jotain olla tuttuja, koska sinun ehdottomasti kohtaavat
koodinpﾃ､tkﾃ､ﾃ､ tﾃ､ﾃ､llﾃ､ ja siellﾃ､ missﾃ､ tﾃ､mﾃ､?: syntaksi,
AKA ternﾃ､ﾃ､rinen operaattori, kﾃ､ytetﾃ､ﾃ､n.
>> Niin nopea yhteenveto mitﾃ､ conditionals ovat,
ja mitﾃ､ vaihtoehtoja on tarjolla sinulle C. Sinulla on Jos ja jos-else,
ja jos if, jne.
Voit kﾃ､yttﾃ､ﾃ､ Boolen operaattoreilla niille tehdﾃ､ pﾃ､ﾃ､tﾃｶksiﾃ､.
>> Kytkimellﾃ､ lausunnoista kﾃ､ytﾃ､t diskreetti tapauksissa tehdﾃ､ pﾃ､ﾃ､tﾃｶksiﾃ､.
Sinun olisi nimenomaan sanoa, jos se on yksi, tai jos se on kaksi, tai jos se on kolme,
Teen tﾃ､tﾃ､ asiaa, tai tﾃ､mﾃ､ asia, tai tﾃ､mﾃ､ asia.
Ja?: Voi olla kﾃ､yttﾃ､ﾃ､ korvaamaan hyvin yksinkertainen, jos-else oksat,
tai jos-else ketjut tehdﾃ､ koodi nﾃ､yttﾃ､ﾃ､ hieman fancy.
>> Olen Doug Lloyd.
Ja tﾃ､mﾃ､ on CS50.