Hästi. Nüüd räägime midagi tõesti kasulik programming-- tingimisi avaldused. Nii tingimisi väljendeid võimaldab oma programmides teha otsuseid ja võtta erinevaid kahvlid tee midagi Ma vihjas veidi varem, sõltuvalt muutuja väärtused, või selle põhjal, mida kasutaja sisendite juures programmeerija, käsurea, või kui sul on kiire või midagi sellist. C on paar erinevat võimalust väljendada tingimisi väljendeid, mis meil ka mõnikord on helistada tingimisi filiaal oma programmides. Ja mõned neist hakkavad otsima päris tuttav nullist, nii me isegi tõmmata neid up kõrvuti, vaid saad teha, et analoogia oma peaga. Nii, kui-- kui on päris Lihtne tingimisi. Kui te mäletate kriimustus siin võid täita, et on kuusnurk sinine väljendus, kui hiirt alla või kui x on väiksem kui 10, või midagi sellist. Ja siis, kui x oli alla 10, või kui hiir oli tegelikult alla kõik koodi sisemust puzzle tükk oleks täide. Kõik asjad, mis sobivad sees, et C kuju. Samuti on meil kui vasakul on. Kui Loogiline väljendus, mis ma olen lihtsalt kasutades aseainena üks Boole'i väljendid me varem arutatud, Avatud lokkis traksidega, tihe lokkis traksidega. Nii et mõtle avatud lokkis traksidega ja suletud lokkis traksidega nagu omamoodi analoogne sandwich mõju, kui ploki paremal algusest. Kui Loogiline väljendus et kui väide on tõene, siis kõik read koodi vahel looksulg täidab selleks ülevalt alla. Kui Loogiline väljendus on vale, siis me Otse üle kõik vahel lokkis traksid, sest me ainult tahan minna, et teelahkmele kui Loogiline avaldis on tõene. Me ei saa võtta see üks samm edasi kui mujal. Nii et see Scratch plokk on päris sarnane ühega nägime vaid teine ​​tagasi, välja arvatud kulub kaks erinevat teed, mis põhineb mis juhtub. Nii et kui hiir on maas, või kui x oli alla 10, Me teeme kõik, mis nende vahel et esimene kahvel, et esimene C., Vastasel juhul, kui hiir on üles või x ei ole väiksem kui 10, Me teeme kõik, et teine ​​rühm. Ja see on analoogne sellega, mida sa näed siia C. Kui Loogiline väljendus, teha asju vahel Esimesed looksulg. Else, teha asju vahel Teine komplekt looksulg. Nii et kui loogilise Ilme on tõsi, siis me mida iganes on vahel esimesed. Kui Loogiline avaldis vale, mis käivitab teise, ja me teeks misiganes Teise komplekti looksulg. Jällegi, ülevalt alla, kõik ridade vahel traksid. In C, siis on võimalik luua if-else if-teine ​​kett. Tegelikult saab olla, kui-mujal kui-mujal kui-mujal, kui ja nii edasi ja nii edasi ja nii kohta. Scratch, selleks on vaja pesitsevate plokid. Sa lisada, kui-teine ​​ja siis tuli pane teine ​​sees teine, ja nii edasi, ja see sai omamoodi pesastatud ja keerulised. Aga C, me ei pea seda tegema. Me võime tegelikult lihtsalt see on kett niimoodi. Jällegi, kui te võite arvata, kõik Nende filiaalid on teineteist välistavad. Võite ainult kunagi minna alla ühe haru. Kui see on tõsi. Vastasel juhul, kui see on tõsi. Vastasel juhul, kui see on tõsi. Vastasel juhul teha. Nii et kõik neli oksad selles Näiteks on teineteist välistavad. See on kui-mujal kui-teine ​​kett. Siiski on võimalik, ja mõnikord väga kasulik, ahela loomiseks mitte üksteist välistavad oksad. Selles näites alles kolmas ja Neljas oksad on teineteist välistavad. See võiks olla, et sa võiksid Esimese tingimuse, ja siis võiks rahuldada Teise tingimuse ja siis võiks rahuldada Kolmas condition-- mille puhul siis oleks minna esimesele osale, siis minna teise haru, siis läheks alla kolmas osa. Või ehk sa rahuldada esimene seisund, ja teine ​​tingimus, aga sa ei vasta Kolmanda tingimuse. Sel juhul sa minna esimest filiaali ja teine ​​haru, ja siis neljas osa, Selle põhjuseks on see, et teine seostub ainult lähima if. Nii et kuigi seal on muidu siin, et ei pea tingimata registreeri vastastikku eksklusiivne kett kõike. See on ainult väljend seal Boole'i Väljend 3-- see on üksteist välistavad koos teisega. Seega on võimalik, ja mõnikord üsna kasulik, nagu ma ütlesin, et luua kett ei välista teineteist oksad. Võtame pilk eri Selline tingimuslik, mis Te ei ole enne nähtud Scratch. Seal on midagi, mida nimetatakse lüliti avalduse. Lüliti avaldus on selline puhas, sest see on tingimuslik väide, mis võimaldab saab määrata erinevad juhtumid, selle asemel et Boole'i väljendeid otsuseid teha teile. Nii näiteks oletame et mul on see programm, ja ma olen palunud kasutaja anda oma panus mulle. Nii et ma ütlen, int x = siia Int (), ja kui sa ei tunne veel, saada int on funktsioon, mis on Samuti sisaldub CS50 raamatukogu nii et kui sa # include CS50.H pead juurdepääsu saada Int () ja kõik selle cousins-- GetFloat, GetString, ja nii edasi. Põhimõtteliselt üks siia funktsiooni iga andmetüüp, et oleme juba arutanud. Nii keskmine x on võrdne GetInt. Põhimõtteliselt, mis toimub on ma olen terminalis. Ma olen palunud kasutajal sisestada number. Ja siin ma üleminek mida ma teen, sõltuvalt mida kasutaja sisestatud käsureale. Nii et kui nad kirjutasid, ma printida ühe. Ja siis ma murda. Kui nad kirjutada kaks, ma välja printida kaks. Ja siis ma murda. On oluline murda vahel iga juhtumi sest muidu kukub läbi. Nii et kui ma ei ole pause seal, ja kasutaja trükitud üks, mis juhtuks, on see trükib üks, kaks, kolm, vabandust. See on omamoodi kummaline käitumine, eks? Sa võid arvan küll. Kuid on tegelikult juhtumeid, kus See võib olla päris kasulik asi. Nii et siin on veel üks näide lüliti avalduse, kus ma jätta puruneb. Aga ma teen seda meelega. Mis juhtub siin? Mõelge hetkeks. Sul võib isegi taha video peatamiseks. Mis juhtub siin, kui kasutaja tüübid neli? Nii et ma olen palunud kasutaja sisend. Ja nad pakuvad väärtust 4. Mis saab printida, kui ma seda teen? On eelmise slaidi, oli pausid kõiki juhtumeid. Ja nii see oleks lihtsalt prindi neli ja seejärel peatus. Aga sel juhul, see ei ole. Mis juhtub on teil kukub läbi iga kord. Nii et kui ma olen korraldanud minu juhtudel sellisel viisil, et kui kasutaja tipib 4, Ma prinditakse neli, kolm, kaks, üks, laukaistuksi. Ja kui nad kirjutasid 5, ma hakkaks kell viis ja teha sama asja. Kui nad kirjutasid 1, oleksin lihtsalt teha ühe, lööklaine ära. Nii et sel juhul ma kasutan lüliti omamoodi kavalalt nii et ma ei kavatse langeda läbi kõik juhtumid. Aga üldiselt oled ilmselt hakkan tahad murda vahel kõik need, kui sa pole olukord nagu see, kus sa oled Selline võimendades, et saate sügisel läbi juhul ilma vaheajata. Nii et teine ​​peamisi tüüpi tingimisi avaldused. Viimane neist on?: Ma on kaks pikad C koodi siin. Üks vasakul ja teine ​​paremal. Üks vasakul peaks arvatavasti päris tuttav. Mul on keskmine x. Ja ma ilmselt peaks palunud kasutaja for-- see peaks ilmselt keskmine x võrdub GetInt, või midagi sellist. Ja siis ma teen otsuse. Kui mõned Loogiline avaldis tõsi, anna x väärtust 5. Vastasel juhul omistada x väärtus 6. See vasakul peaks ilmselt olema päris tuttav meie arutelu If Else hetk tagasi. Kas sa oleks üllatunud teada et line paremal teeb täpselt sama asi? Nii seda nimetatakse?: Või mõnikord nimetatakse kolmekomponendiliste operaator. Ja see on päris lahe. See on tavaliselt kasutatakse armas trikk. Aga mis siis saab teha, on simuleerida Kui Else koos tõesti väike, tõesti triviaalselt lühike tingimisi oksad. Sa üldjuhul ei kasuta?: Kui te oli kuus rida koodi seeriate vahel lokkis traksid. Aga kui sa oled lihtsalt teha kiire otsus, kui sa lähed teha ühte asja või teine ​​ja see on väga lihtne, see võiks olla näide, kuidas seda teha?: temaarse operaator. Nii keskmine x on võrdne väljendus? Asi pärast küsimus märk on see, mida x väärtus on kui väljend on tõsi. Asi pärast Koolon, mis on Xi väärtus oleks, kui see väljend on vale. Nii et ma küsin endalt, väljendab tõsi? Kui on, siis anna x väärtust 5. Kui see ei ole, anna x väärtust 6. Jällegi, nagu ma ütlesin. See on tavaliselt lihtsalt armas trikk. Ja mõnikord, kui te jääte tõesti mugav see, saate seda teha, sest see näeb selline lahe oma programmides. Üldiselt ma selle esitamine sa nüüd nii et sa oled tuttav Kui sa seda näed. Aga kindlasti tean, et sa ei pea seda kirjutada ükskõik koodi. Aga see on midagi, et olla kursis, sest sa oled kindlasti tekib pikad kood siia ja seal, kus see on?: süntaks, AKA kolmekomponendiliste operaatori kasutatakse. Nii kiire kokkuvõte Mis conditionals on, ja mida valikuid teile C. Sul Kui ja, kui-mujal, ja kui else if, jne. Võite kasutada Boole'i ​​avaldised neile, teha otsuseid. Mis switch väited te kasutate diskreetne juhtudel teha otsuseid. Sa oleks konkreetselt öelda, kas see on üks või kui see on kahe või kui see on kolm, Ma teen seda asja, või see asi, või seda asja. Ja?: Võib olla kasutatud asendada väga lihtne, kui-teine ​​haru, või kui-mujal ketid teha koodi vaadata veidi fancy. Ma olen Doug Lloyd. Ja see on CS50.