Sawa. Hivyo sasa hebu majadiliano juu ya kitu muhimu kweli kweli katika programming-- masharti kauli. Maneno hivyo masharti kuruhusu programu yako kufanya maamuzi na kuchukua mbalimbali uma katika barabara, kitu Mimi alluded mapema kidogo, kutegemea maadili ya vigezo, au kulingana na kile pembejeo user katika programu, katika mstari amri, au kama una haraka au kitu kama hicho. C ina michache ya njia mbalimbali za kueleza maneno masharti, ambayo sisi pia wakati mwingine nitakuita masharti tawi katika programu yako. Na baadhi ya haya ni kwenda kuangalia pretty ukoo na wewe kutoka mwanzo, hivyo tutaweza hata kuvuta yao up kwa upande upande, tu unaweza kufanya kwamba mfano katika kichwa yako. Hivyo, if-- ikiwa ni pretty rahisi masharti. Kama unakumbuka kutoka mwanzo juu ya haki hapa unaweza kujaza kwamba ni hexagons na usemi bluu kama kipanya chini au kama x ni chini ya 10, au kitu kama hicho. Na kisha, kama x ilikuwa chini ya 10, au kama panya ilikuwa kwa kweli, chini, wote wa kificho ndani ya puzzle kipande ingekuwa kutekeleza. Mambo yote ambayo inafaa ndani ya C sura hiyo. Vile vile, kufanya tuna kama upande wa kushoto huko. Kama kujieleza Boolean, ambayo mimi nina kutumia tu kama mbadala kwa ajili ya Boolean moja Maneno sisi awali kujadiliwa, wazi curly brace, karibu curly brace. Hivyo kufikiria curly wazi Brace na kufungwa curly brace kama aina ya sawa na sandwich athari za kuzuia ikiwa juu ya haki kutoka mwanzo. Kama kujieleza Boolean katika ikiwa maelezo ni ya kweli, kisha mistari yote ya kificho kati ya braces curly nitafanya ili kutoka juu hadi chini. Kama kujieleza Boolean ni uongo, tutaweza ruka juu kila kitu katika kati braces curly, kwa sababu sisi tu wanataka kwenda chini kwamba uma katika barabara kama kujieleza Boolean ni kweli. Tunaweza kuchukua hatua hii moja zaidi na kama pengine. Hivyo kuzuia hii Scratch ni pretty sawa na moja tuliona haki ya pili iliyopita, isipokuwa inachukua njia mbili tofauti kulingana juu ya nini kinatokea. Hivyo kama panya ilikuwa chini, au kama x ilikuwa chini ya 10, tutaweza kufanya kila kitu kilicho katika kati ya kwamba uma kwanza, kwamba C. kwanza, Vinginevyo, kama panya ni up, au x ni si chini ya 10, tutafanya kila kitu katika seti ya pili. Na hiyo ndiyo sawa na nini kuona hapa kwa C. Kama Boolean kujieleza, kufanya mambo kati kwanza kuweka ya braces curly. Lingine lolote, fanyeni mambo kati pili seti ya braces curly. Hivyo kama Boolean kujieleza ni kweli, tutaweza kufanya lolote ni kati ya seti ya kwanza. Kama kujieleza Boolean ni uongo, ambayo ingeweza kusababisha kingine chochote, na tunataka kufanya lolote katika seti ya pili ya braces curly. Tena, juu hadi chini, kila mistari katika kati ya braces. Katika C, inawezekana kujenga an kama-kingine kama-kingine mlolongo. Kwa kweli unaweza kuwa kama-kingine kama-kingine kama-kingine, ikiwa, na kadhalika na kadhalika na juu ya. Katika Scratch, hii inahitajika nesting vitalu. Kuongeza kama-kingine, na alikuwa na kuweka mtu mwingine ndani ya kingine, na kadhalika, na ni got aina Furushi la na ngumu. Lakini C, hatuna kufanya hivyo. Tunaweza kweli tu na kuwa mlolongo kama hii. Tena, kama unaweza kutarajia, wote wa matawi haya ni pande kipekee. Unaweza tu milele kwenda chini moja ya tawi. Kama hili ni kweli. Vinginevyo, kama hii ni kweli. Vinginevyo, kama hii ni kweli. Vinginevyo, kufanya hivyo. Hivyo zote nne za matawi katika hii mfano ni pande kipekee. Ni kama-kingine kama-kingine mlolongo. Inawezekana hata hivyo, na wakati mwingine muhimu sana, kujenga mlolongo wa si matawi pande kipekee. Katika mfano huu, theluthi moja tu na matawi ya nne ni pande kipekee. Ni inaweza kuwa kwamba unaweza kukidhi masharti ya kwanza, na unaweza kukidhi Sharti la pili, na unaweza kukidhi condition-- tatu katika kesi ambayo ungependa kwenda chini tawi la kwanza, basi kwenda chini tawi la pili, basi ingekuwa kwenda chini tawi tatu. Au labda wewe kukidhi kwanza hali, na hali ya pili, lakini huna kukidhi Sharti la tatu. Katika kesi hiyo kwenda chini kwanza tawi na tawi la pili, na kisha tawi la nne, Sababu hii ni kwamba pengine tu kumfunga kwa karibu zaidi ikiwa. Hivyo hata kama kuna kingine hapa, kwamba siyo lazima kujenga pande mlolongo wa kipekee wa kila kitu. Ni tu kujieleza huko pamoja Boolean kujieleza 3-- hiyo ni pande kipekee na kingine chochote. Hivyo inawezekana, na wakati mwingine muhimu kabisa, kama nilivyosema, ili kujenga mlolongo wa matawi hazitofautiani. Hebu tuangalie tofauti aina ya masharti, ambayo hawajaona kabla katika Scratch. Kuna kitu kinachoitwa kubadili kauli. Kauli kubadili ni aina ya nadhifu kwa sababu ni Kauli masharti ambayo inaruhusu bayana kesi tofauti, badala ya kutegemea Boolean Maneno kufanya maamuzi kwa ajili yenu. Hivyo kwa mfano, hebu sema kwamba nina mpango huu, na mimi nina kuuliza mtumiaji kutoa mchango kwangu. Kwa hiyo nasema, int x = Kupata Int (), na kama wewe si ukoo bado, kupata int ni kazi ambayo ni pia ni pamoja na katika maktaba CS50, hivyo kama wewe # ni pamoja na CS50.H itabidi upatikanaji wa Kupata Int () na wote wa wake cousins-- GetFloat, GetString, na kadhalika. Kimsingi moja Kupata kazi kwa kila Aina ya data kwamba tumekuwa tayari kujadiliwa. Hivyo Int x sawa GetInt. Kimsingi nini kinatokea ni mimi nina katika wastaafu. Mimi nina kuuliza mtumiaji aina katika idadi. Na hapa mimi nina byte nini mimi kufanya, kutegemea juu ya kile mtumiaji typed katika haraka. Hivyo kama wao typed moja, mimi magazeti nje moja. Na kisha mimi kuvunja. Kama wao aina mbili, mimi magazeti nje miwili. Na kisha mimi kuvunja. Ni muhimu kuvunja kati ya kila kesi kwa sababu vinginevyo utakuwa kuanguka kwa njia. Hivyo kama sikuwa na chochote mapumziko huko, na user typed moja, nini kitatokea ni ingekuwa magazeti moja, mbili, tatu, pole. Hiyo ni aina ya tabia ya ajabu, sawa? Unaweza kufikiri hivyo. Lakini kuna kweli baadhi ya matukio ambapo hii inaweza kuwa ni jambo pretty muhimu. Hivyo hapa ni mfano mwingine wa kubadili Kauli ambapo mimi saza mapumziko. Lakini mimi kufanya hivyo kwa makusudi. Hivyo kile kinachotokea hapa? Fikiria kwa pili. Unaweza hata wanataka pause video. Nini kinatokea hapa ikiwa aina ya mtumiaji nne? Hivyo nimekuwa aliuliza mtumiaji kwa ajili ya pembejeo. Na wao kutoa thamani 4. Nini anapata kuchapishwa wakati mimi kufanya hivyo? On slide uliopita, kulikuwa na mapumziko kati ya kesi zote. Na hivyo ingekuwa tu magazeti manne na kisha kuacha. Lakini katika kesi hii, itakuwa si. Nini kitatokea ni wewe kuanguka kwa njia ya kila kesi. Hivyo katika kesi hii nimepata iliyoandaliwa kesi yangu katika namna ambayo kama mtumiaji aina 4, Mimi magazeti manne, tatu, mbili, moja, mlipuko mbali. Na kama wao typed 5, napenda kuanza saa tano na kufanya kitu kimoja. Kama typed 1, napenda tu kufanya moja, mlipuko mbali. Hivyo katika kesi hii, mimi nina kutumia kubadili aina ya uwazi hivyo kwamba mimi na nia ya kuanguka kupitia kesi zote. Lakini kwa ujumla wewe pengine gonna wanataka kuvunja kati ya wote hao, isipokuwa kama una hali kama hii moja ambapo wewe ni aina ya leveraging ukweli kwamba utasikia kuanguka kwa njia ya kesi bila mapumziko. Hivyo hiyo ni ya pili ya kuu aina ya kauli masharti. Mwisho wa ambayo ni:? Basi, mimi na snippets wawili wa C kificho hapa. Mmoja upande wa kushoto na mwingine upande wa kulia. Mmoja upande wa kushoto lazima pengine kuwa pretty ukoo na wewe. Nina Int x. Na mimi pengine lazima wameomba mtumiaji for-- hii lazima pengine kuwa Int x sawa GetInt, au kitu kama hicho. Na kisha mimi nina kufanya uamuzi. Kama baadhi kujieleza Boolean ni kweli, kuwapa x thamani 5. Vinginevyo, hawawajui x thamani 6. Hiyo upande wa kushoto lazima pengine kuwa pretty ukoo kutoka mjadala wetu Kama Mwingine wa muda tu iliyopita. Je, wewe kushangazwa kujua kuwa mstari juu ya haki anafanya exact kitu? Hivyo hii inaitwa:? Au wakati mwingine aitwaye operator ternary. Na ni pretty cool. Ni kawaida kutumika kama hila cute. Lakini nini utapata kufanya ni kuiga Kama Mwingine kwa kweli ni ndogo, kweli trivially short matawi masharti. Wewe kwa ujumla bila kutumia: kama wewe alikuwa mistari sita ya kificho kati ya kila seti ya curly braces. Lakini kama wewe ni tu kufanya uamuzi wa haraka, kama wewe ni kwenda kufanya kitu kimoja au nyingine na ni rahisi sana, hii inaweza kuwa mfano wa jinsi ya kufanya hivyo pamoja:? operator ternary. Hivyo Int x sawa kujieleza? Jambo baada swali alama ni nini x ya thamani itakuwa kama kujieleza ni kweli. Jambo baada matumbo ni nini thamani ya x itakuwa kama kujieleza ilikuwa ni uongo. Hivyo mimi nina kuuliza mwenyewe, ni usemi wa kweli? Kama ni, kuwapa x thamani 5. Kama siyo, kuwapa x thamani 6. Tena, kama nilivyosema. Hii ni kawaida tu hila cute. Na wakati mwingine kama wewe kuwa kweli starehe na hayo, wewe utakuwa kufanya hivyo kwa sababu inaonekana aina ya baridi katika mipango yako. Kwa ujumla mimi nina kuziwasilisha kwa wewe sasa hivyo wewe ni ukoo na hayo kama wewe kuona. Lakini bila ya shaka tunajua huna kuandika yoyote ya kanuni yako. Lakini ni kitu cha kuwa na mazoea na, kwa sababu wewe utakuwa dhahiri kukutana snippets wa kanuni hapa na pale ambapo huu:? syntax, AKA operator ternary, ni kutumika. Muhtasari hivyo haraka juu nini conditionals ni, na nini chaguzi za kutosha na wewe katika C. Una Kama na kama-kingine, na kama mwingine kama, nakadhalika. Unaweza kutumia maneno Boolean kwa wale kufanya maamuzi. Kwa kauli kubadili matumizi kesi Diskret kufanya maamuzi. Ungependa hasa kusema, ikiwa ni moja, au kama ni wawili, au kama ni tatu, Mimi itabidi kufanya jambo hili, au jambo hili, au jambo hili. Na:? Unaweza kutumiwa kuchukua nafasi rahisi sana matawi kama-kingine, au kama-kingine minyororo kufanya kificho wako kuangalia dhana kidogo. Mimi nina Doug Lloyd. Na hii ni CS50.