U redu. Dakle, sada ćemo govoriti o nečemu stvarno korisno u programming-- uvjet. Tako uvjetni izrazi omogućuju programe donositi odluke i preuzeti različite vilice u cestovnom, nešto Sam aludirao na nešto ranije, ovisno o vrijednosti varijabli, ili na temelju onoga što korisnik ulazi u programer, u naredbeni redak, ili ako imate upit ili nešto slično. C ima nekoliko različitih načina na izraziti uvjetnih izraza, koji se mi također ponekad nazvati uvjetna grana u svoje programe. A neki od njih idu gledati prilično upoznat s tobom od nule, pa čak ćete ih povući se rame uz rame, samo možete učiniti da analogiju u glavi. Dakle, if-- ako je lijepa Jednostavan uvjetno. Ako se sjećate iz ogrebotine na desnoj ovdje mogli ispuniti to je šesterokut s plavim izražavanja ako miš dolje ili ako je x manja od 10, ili nešto slično. I tada, ako je x je manje od 10, ili ako je miš u stvari, prema dolje, sve koda unutrašnjosti zagonetka komad će izvršiti. Sve stvari koje stanu unutar tog C oblika. Isto tako, imamo ako je na lijevoj tamo. Ako Boolean izraza, što sam upravo pomoću kao zamjena za jedan od boolean Izrazi smo ranije raspravljali, otvoreni kovrčava braće, u neposrednoj blizini kovrčava braće. Zato mislim otvorenog kovrčava braće i zatvorena kovrčave vitice kao svojevrsni analogan sendvič učinak ako blok na desnoj od nule. Ako je logički izraz u ako izjavi je istina, onda sve linije koda između vitičastih zagrada će izvršiti kako bi od vrha do dna. Ako je logički izraz je lažna, mi ćemo preskočiti sve između u vitičastim zagradama, jer mi samo želim ići dolje da vilicu na cesti ako je logički izraz istinit. Možemo uzeti ovaj korak dalje s ako je ostalo. Dakle, ovo Scratch blok prilično sličan onom vidjeli smo samo sekundu prije, osim to traje dvije različite staze temelju na ono što se događa. Dakle, ako je miš bio dolje, ili ako x je manje od 10, mi ćemo učiniti sve što je između da prva vilica, da prvo C, Inače, ako je miš gore, ili X nije manji od 10, mi ćemo učiniti sve što je u drugom setu. I to je analogno ono što vidite Ovdje C. Ako Boolean izraza, obaviti stvari između Prvi set vitičastih zagrada. Drugo, učiniti stvari između Drugi set vitičastih zagrada. Dakle, ako je logička Izraz je istina, mi ćemo učiniti sve što je između prvog seta. Ako je logički izraz je netočno, koja bi potaknula drugo, a mi bi učiniti sve što je u drugi set vitičastih zagrada. Opet, od vrha do dna, sve redovi između zagrada. U C, to je moguće stvoriti if-else if-else lanac. Zapravo možete imati ako-else if-else ako-drugo, ako je, i tako dalje i tako dalje i tako o. U nule, to zahtijeva gnijezde blokova. Dodate li-drugi, i vama je da stavi još jedan unutar drugog, i tako dalje, i to je dobio vrsta ugniježđena i komplicirano. Ali C, ne morate to učiniti. Mi zapravo može samo bilo lanac ovako. Opet, kao što ste mogli očekivati, sve ove grane se međusobno isključuju. Možete samo ikad ići niz jednu od grana. Ako je to istina. Inače, ako je to istina. Inače, ako je to istina. Inače, to učiniti. Dakle, sve četiri grane u ovom Primjer se međusobno isključuju. To je, ako-else if-else lanac. Moguće je ipak, a ponekad i vrlo korisno, stvoriti lanac ne međusobno isključiva grana. U ovom slučaju, i treći četvrti grane se međusobno isključuju. Moglo bi biti da bi mogao zadovoljiti prvi uvjet, i ti mogao zadovoljiti drugi uvjet, i ti mogao zadovoljiti Treći condition-- u kojem slučaju što će ići dolje prvu podružnicu, onda ići dolje drugu granu, onda bi ići dolje treću granu. Ili možda zadovoljiti prvi stanje, a drugi uvjet, ali ne zadovoljavaju treći uvjet. U tom slučaju ići dolje prvi grana i druga grana, a zatim četvrti grana, Razlog za to je da se drugi će se vezati samo najbliži, ako. Dakle, iako postoji drugi ovdje, da ne mora nužno stvoriti međusobno ekskluzivni lanac svega. To je samo izraz tamo s boolean Izraz 3-- to je međusobno isključuju s drugim. Dakle, to je moguće, i ponekad vrlo korisno, kao što sam rekao, stvoriti lanac međusobno ne isključuju grane. Uzmimo pogled na drugačiji vrsta uvjetno, što niste vidjeli prije u nule. Postoji nešto što se zove izjava prekidač. Izjava prekidač vrsta uredan jer je Uvjetna naredba koja omogućuje da odredite različite slučajeve, umjesto oslanjajući se na Boolean Izrazi za donošenje odluka za vas. Tako, na primjer, recimo da imam ovaj program, i ja tražim korisnika osigurati ulaz za mene. Zato kažem, int x = Get Int (), a ako još niste upoznati, dobili int je funkcija koja je Također uključeni u CS50 knjižnici, pa ako #include CS50.H ćete imati pristup Get Int () i sve njegove cousins-- GetFloat, GetString, i tako dalje. Uglavnom on dobiti funkciju za svaki Vrsta podataka koje smo već razgovarali. Dakle Int x jednaka GetInt. Uglavnom ono što se događa je sam na terminalu. Tražim korisniku upisati broj. I ovdje sam prebacivanje što radim, ovisno na ono što korisnik upisali u retku. Dakle, ako su upisali jednu, ja ispisati jedan. A onda sam se slomiti. Ako su dva tipa, ja ispisati dva. A onda sam se slomiti. Važno je razbiti između svakog slučaja jer inače ćete pasti preko. Dakle, ako nisam imao bilo odmor tamo, a korisnik upisali jedan, što će se dogoditi je to će ispisati jedan, dva, tri, ispričavam se. To je vrsta čudno ponašanje, zar ne? Možda mislite kako. No, postoje neki slučajevi u kojima zapravo to može biti prilično korisna stvar. Dakle, ovdje je još jedan primjer prekidača Izjava gdje sam izostaviti pauze. Ali ja to namjerno. Dakle, ono što se događa ovdje? Razmislite na trenutak. Vi svibanj čak želite pauzirati video. Što se događa ovdje ako vrste korisničkih četiri? Pa sam pitao korisniku za unos. I oni daju vrijednost 4. Što dobiva tiskani kad sam to učiniti? Na prethodnu stranicu, bilo je pauze između svih slučajeva. I tako to bi samo ispis četiri i onda prestati. No, u ovom slučaju, to neće. Što će se dogoditi vas će pasti kroz svaki slučaj. Tako je u ovom slučaju sam organizirao svoje slučajeve na takav način da, ako korisnik upiše 4, Ja ću ispisati četiri, tri, dva, jedan, poletjeti. A ako su upisali 5, ja bih početi u pet i učiniti istu stvar. Ako su upisali 1, bih samo učiniti jedan, blast off. Dakle, u ovom slučaju, ja sam koristeći prekidač vrsta pametno tako da ja ne namjeravam pasti kroz sve slučajeve. Ali općenito vjerojatno ste ti žele razbiti između svih njih, osim ako imate situaciju poput ove gdje ste vrsta utjecati na činjenicu da ćete pasti kroz slučajeva bez pauze. Dakle, to je drugi od glavnih vrste uvjetnih izjava. Posljednje što je:? Pa ja imaju dva isječka C kod ovdje. Jedan na lijevoj strani i jedan na desnoj strani. Onaj s lijeve strane trebale vjerojatno biti prilično upoznat s tobom. Imam Int x. I vjerojatno bi trebao su upitani korisnika for-- to vjerojatno trebao biti Int x jednako GetInt, ili nešto slično. A onda sam donošenja odluke. Ako neki logički izraz je istina, dodijeliti x vrijednosti 5. Inače, dodijeliti x vrijednosti 6. To na lijevoj strani, vjerojatno bi trebao biti prilično upoznati s naše rasprave Ako od Inače samo trenutak prije. Biste li biti iznenađeni da znaju da crte na desnoj ne točno istu stvar? Dakle, to se zove:? Ili ponekad zove ternarna operatora. I to je prilično cool. Obično se koristi kao slatka trik. No, ono što vam omogućuje da učinite je da se simuliraju IF drugi s stvarno mali, stvarno trivijalno kratki uvjetne grane. Vi obično ne bi koristili: ako vas imao šest linija koda između svakog seta od vitičastih zagrada. Ali, ako ste samo stvaranje brzu odluku, ako ste idući u obaviti jednu stvar ili drugo, a to je vrlo jednostavan, to može biti primjer kako to su:? ternarnog operatora. Dakle Int x jednak izraz? Stvar je nakon pitanja Mark je ono x je vrijednost će se, ako je izraz istinit. Stvar nakon kolona je ono što X-vrijednost bi bilo ako je izražavanje neistinito. Tako sam se pitao, je izraz istina? Ako je, dodijeliti x vrijednosti 5. Ako to nije, dodijeliti x vrijednosti 6. Opet, kao što sam rekao. To je obično samo slatka trik. A ponekad, ako ste postali stvarno ugodno s njim, ćete to učiniti, jer to izgleda vrsta cool u svoje programe. Općenito sam ga predstaviti na sada, tako da ste upoznati s njom ako ga vidite. Ali sigurno znam da ne morate da ga pisati u bilo kojem kodu. Ali, to je nešto što bi se upoznati s, jer sigurno ćete naići na dijelovi koda i ovdje tamo gdje se to? sintaksa, AKA ternarnog operatera, koristi. Dakle, kratki sažetak na što uvjetne su, i što su dostupne opcije vama u C. Možete imati ako te ako-else, i ako se još ako i tako dalje. Možete koristiti Boolean izraza za one koji donose odluke. S prekidačem izjavama koristite diskretne slučajevima za donošenje odluka. Ti bi konkretno reći, ako je to jedan, ili ako je to dva, ili ako je to tri, Ja ću učiniti nešto takvo, ili ova stvar ili ova stvar. A: može se koristiti za zamjenu vrlo jednostavna, ako-else grane, ili ako-else lanci napraviti Vaš broj izgleda malo fancy. Ja sam Doug Lloyd. A to je CS50.