Lahat tama.
Kaya ngayon sabihin makipag-usap tungkol sa isang bagay hayaan talagang kapaki-pakinabang sa programming--
kondisyon na pahayag.
Kaya may kondisyon na expression payagan ang iyong mga programa
upang gumawa ng mga desisyon at kumuha ng iba't ibang tinidor sa kalye, isang bagay
Tinukoy ko na maliit na mas maaga, depende sa halaga ng variable,
o batay sa kung ano ang input ng user sa ang programmer, sa command line,
o kung ikaw ay may isang prompt o isang bagay tulad na.
C ay may isang pares ng mga iba't-ibang mga paraan upang ipahayag ang kondisyon na expression, na kung saan
kami din minsan tumawag sa isang kondisyong branch sa iyong mga programa.
At ang ilan sa mga ito ay pagpunta sa hitsura medyo pamilyar sa iyo mula sa simula,
kaya makikita namin kahit na hilahin ang mga ito up magkatabi, lamang
maaari mong gawin na pagkakatulad sa inyong ulo.
>> Kaya, if-- kung ay isang pretty simple kondisyon.
Kung pagpapabalik sa iyo mula sa scratch sa kanang dito
maaari mong punan na hexagon may asul na expression kung mouse down
o kung ang x ay mas mababa sa 10, o isang bagay tulad na.
At pagkatapos ay, kung ang x ay mas mababa sa 10, o kung ang mouse ay sa katunayan, pababa,
ang lahat ng mga code sa loob ng piraso ng puzzle ay execute.
Ang lahat ng mga bagay-bagay na magkasya sa loob na hugis C.
>> Katulad nito, ang kailangan namin kung sa kaliwa doon.
Kung Boolean expression, na lang ako ng gamit
bilang isang kapalit para sa isa sa Boolean expression namin dati tinalakay,
bukas kulot suhay, malapit kulot suhay.
Kaya sa tingin ng mga bukas na kulot suhay at closed kulot suhay
bilang uri ng kahalintulad sa sandwich epekto ng kung block sa kanan
mula sa wala.
>> Kung ang Boolean expression sa kung ang pahayag ay totoo,
at pagkatapos ang lahat ng mga linya ng code sa pagitan ng mga kulot tirante
ay execute sa order mula sa itaas hanggang sa ibaba.
Kung ang Boolean expression ay hindi totoo, bibigyan namin ng
laktawan sa paglipas ng lahat ng bagay sa pagitan ng ang kulot tirante, dahil kami lamang
nais na bumaba na tinidor sa kalye kung ang Boolean expression ay totoo.
>> Maaari naming gawin ito sa isang hakbang karagdagang sa kung tao.
Kaya ito scratch block ay pretty katulad sa isa
Nakita namin ang isang segundo lang ang nakalipas, maliban ito ay tumatagal ng dalawang magkaibang mga landas batay
sa kung ano ang mangyayari.
Kaya kung ang mouse ay down, o kung x ay mas mababa sa 10,
gagawin namin ang lahat na nasa pagitan na unang tinidor, na unang C.,
>> Kung hindi man, kung ang mouse ay up, o ang x ay hindi mas mababa sa 10,
gagawin namin ang lahat ng bagay sa ikalawang set.
At iyan ay kahalintulad sa kung ano ang nakikita mo dito para sa C. Kung Boolean expression,
gawin ang mga bagay-bagay sa pagitan ng unang hanay ng mga kulot tirante.
Iba Pa, gawin ang mga bagay-bagay sa pagitan ng ikalawang hanay ng mga kulot tirante.
Kaya kung ang Boolean expression ay totoo, bibigyan namin ng
gawin ang anumang ay sa pagitan ng unang set.
Kung ang Boolean expression ay false, na-trigger ang mga tao,
at kami ay gawin ang anumang sa ang pangalawang hanay ng curly braces.
Muli, sa itaas sa ibaba, ang lahat ng mga linya sa pagitan ng braces.
>> Sa C, ito ay posible upang lumikha ng isang kung-iba kung-ibang chain.
Sa katunayan maaari kang magkaroon ng kung-ibang kung-ibang kung-ibang, kung, at iba pa at iba pa at iba
on.
Sa simula, kinakailangan na ito mamahinga ang mga bloke.
Idagdag mo isang kung-iba, at ikaw ay nagkaroon na maglagay ng isa pang isa sa loob ng ibang tao,
at iba pa, at ito ay nakuha ng uri ng nested at kumplikado.
Ngunit C, hindi namin ay may upang gawin iyon.
Maaari naming talagang lamang magkaroon ng ito ay isang kadena na tulad nito.
Muli, bilang maaari mong asahan, ang lahat ng mga mga sanga ay pare-pareho eksklusibo.
Maaari ka lamang kailanman pumunta down na ang isa sa mga branch.
Kung ito ay totoo.
Kung hindi, kung ito ay totoo.
Kung hindi man, gawin ito.
Kaya ang lahat ng apat na ng mga sangay sa mga ito Halimbawa ay kapwa eksklusibong.
Ito ay isang kung-iba kung-ibang chain.
>> Ito ay posible kahit na, at kung minsan ay lubhang kapaki-pakinabang,
upang lumikha ng isang hanay ng mga hindi pare-pareho eksklusibo sanga.
Sa halimbawa na ito, tanging ang ikatlo at ika-apat na sanga ay pare-pareho eksklusibo.
Maaaring ito ay na maaari mong masiyahan ang unang kalagayan,
at maaari kang masiyahan ang ikalawang kalagayan,
at maaari kang masiyahan ang ikatlong condition-- sa kaso
Gusto mong pumunta down ang unang branch, pagkatapos mong bumaba ng isang pangalawang branch,
pagkatapos ay nais mong pumunta down ang ikatlong sangay.
O di kaya mong masunod ang unang kalagayan, at ang ikalawang kalagayan,
ngunit hindi mo na masunod ang ikatlong kondisyon.
Sa kasong ito ikaw ay pupunta pababa sa unang sangay at ang pangalawang branch,
at pagkatapos ay ang ika-apat na branch,
>> Ang dahilan sa ito ay na ang mga ibang tao Makikita lamang panagutin sa pinakamalapit na kung.
Kaya kahit na may isang iba pa dito, na
ay hindi kinakailangang lumikha ng isang kapwa eksklusibong kadena ng lahat ng bagay.
Ito ay lamang ang expression doon sa Boolean
expression 3-- iyon ang pare-pareho eksklusibo sa mga ibang tao.
Kaya ito ay posible, at minsan masyadong kapaki-pakinabang,
gaya ng sinabi ko, upang lumikha ng isang hanay ng mga hindi pare-pareho eksklusibo sanga.
Tingnan natin ang isang pagtingin sa isang iba't ibang uri ng mga kondisyon, na kung saan
hindi mo pa nakikita dati sa scratch.
May isang bagay na tinatawag na ang switch statement.
Ang pahayag na lumipat ay uri ng kapong baka dahil sa ito ay
isang kondisyon na pahayag na nagbibigay-daan sa iyo upang tukuyin natatanging mga kaso,
halip na umasa sa Boolean expression upang gumawa ng mga desisyon para sa iyo.
Kaya halimbawa, sabihin natin na mayroon akong programa na ito,
at ako nagtatanong sa gumagamit upang magbigay ng input sa akin.
Kaya sinasabi ko, int x = Kumuha ng int (), at kung hindi ka pamilyar pa,
makakuha ng int ay isang function na ay kasama rin sa CS50 library,
kaya kung # isama mo CS50.H magkakaroon ka access sa Kumuha ng int () at ang lahat ng kanyang
cousins-- GetFloat, GetString, at iba pa.
Karaniwang isa Kumuha ng function para sa bawat uri ng data na mayroon kami ay tinalakay.
>> Kaya int x ay katumbas ng GetInt.
Talaga kung ano ang nangyayari ay ako sa terminal.
Ako nagtatanong sa gumagamit na i-type sa isang numero.
>> At dito ako lumipat ano ang ginagawa ko, depende
sa kung ano ang nai-type ang user sa prompt.
Kaya kung sila nag-type ng isa, i-print ko out isa.
At pagkatapos ay ako ay masira.
Kung nagta-type sila ng dalawang, i-print out ako sa dalawa.
At pagkatapos ay ako ay masira.
Mahalaga na masira sa pagitan ng bawat kaso
dahil kung hindi man ikaw ay mahulog sa pamamagitan ng.
Kaya kung hindi ko magkaroon ng anumang break doon, at ang mga gumagamit
nag-type ng isa, ano ang mangyayari ito Gusto print ng isa, dalawa, tatlo, paumanhin.
Iyon uri ng kakaibang pag-uugali, tama?
Maaari mong isipin ito.
Ngunit may mga aktwal na ilang mga kaso kung saan ang ito ay maaaring isang medyo kapaki-pakinabang na bagay.
Kaya narito ang isa pang halimbawa ng isang lumipat pahayag kung saan ligtaan ko ang breaks.
Subalit gagawin ko ito sa layunin.
>> Kaya kung ano ang mangyayari dito?
Mag-isip para sa isang segundo.
Maaari kang kahit na gusto mong i-pause ang video.
>> Ano ang mangyayari dito kung uri ng apat na mga user?
Kaya tinanong ko na ang mga user para sa input.
At sila ay nagbibigay ng halaga 4.
Ano ang makakakuha ng naka-print kapag gagawin ko na?
Sa naunang slide, may mga break sa pagitan ng lahat ng mga kaso.
At kaya ay ito lamang i-print ang apat at pagkatapos ay hihinto.
Ngunit sa kasong ito, ito ay hindi.
Ano ang mangyayari ay sa iyo ay mahulog sa pamamagitan ng bawat kaso.
>> Kaya sa kasong ito na inayos ko na ang aking mga kaso sa paraan na kung ang uri ng user 4,
Ako ay i-print ang apat, tatlo, dalawa, isa, sabog off.
At kung sila nag-type 5, nais kong magsimula sa limang at gawin ang parehong bagay.
Kung nai-type ito ay 1, nais ko gawin ang isa lamang, sabog off.
>> Kaya sa kasong ito, gumagamit ako ng isang lumipat uri ng cleverly kaya
na ko balak na mahulog sa lahat ng mga kaso.
Ngunit sa pangkalahatan ikaw ay marahil gonna nais na break sa pagitan ng lahat ng mga ito,
maliban kung mayroon kang isang sitwasyon tulad ng isang ito kung saan ikaw ay
uri ng pagdaragdag ng katotohanan na makikita mo mahulog sa pamamagitan ng mga kaso na walang pahinga.
Kaya iyon ang ikalawang ng mga pangunahing mga uri ng mga kondisyon na pahayag.
Ang huling na kung saan ay: Kaya ako may dalawang mga snippet ng code sa C dito.
Isa sa kaliwa at isa sa kanan.
Ang isa sa kaliwa ay dapat malamang na medyo pamilyar sa iyo.
>> Mayroon akong int x.
At marahil ako dapat may nagtanong ang gumagamit
for-- ito marahil ay dapat na int x ay katumbas ng GetInt, o isang bagay na tulad ng.
At pagkatapos ay ako gumawa ng isang desisyon.
Kung ang ilang mga Boolean expression ay true, magtalaga x ang halaga 5.
Kung hindi man, magtalaga x ang halaga 6.
>> Iyon sa kaliwa dapat na marahil ay medyo pamilyar mula sa aming discussion
ng kung Else sandali lamang ang nakalipas.
Gusto mo mabigla malaman na ang mga linya sa kanang
ang ipinapakita ng parehong bagay?
>> Kaya ito ay tinatawag na: o kung minsan tinatawag na ang tatlong bagay operator.
At ito ay medyo cool.
Karaniwang Ito ay ginagamit bilang isang cute bilis ng kamay.
>> Ngunit kung ano ang nagbibigay-daan sa iyo na gawin ay ang gayahin ang isang Kung Else sa talagang maliit,
talagang trivially maikling kondisyong sanga.
Hindi ka pangkalahatan na gustong gamitin: kung ikaw nagkaroon ng anim na linya ng code sa pagitan ng bawat set
ng curly braces.
Ngunit kung ikaw ay lamang paggawa ng isang mabilis na desisyon,
kung ikaw ay pagpunta sa gawin ang isang bagay o sa iba pang at ito ay napaka-simple,
maaaring ito ay isang halimbawa ng kung paano sa gawin ito na may: ang tatlong bagay operator.
Kaya int x ay katumbas ng expression?
Ang bagay matapos ang tanong mark ay kung ano ang x ni halaga
ay kung expression ay totoo.
>> Ang mga bagay na pagkatapos ng colon ay kung ano ang halaga ng x ni
ay kung ang expression ay hindi totoo.
Kaya ako nagtatanong sa sarili ko, ay totoo ang expression?
Kung ito ay, magtalaga x ang halaga 5.
Kung ito ay hindi, magtalaga x ang halaga 6.
Muli, tulad ng sinabi ko.
Ito ay karaniwang lamang ng isang cute na bilis ng kamay.
At minsan kung ikaw ay maging talagang komportable sa ito,
makikita mo gawin ito dahil mukhang uri ng mga cool sa iyong mga programa.
Sa pangkalahatan ako pagtatanghal na ito sa mo na ngayon kaya hindi ka pamilyar sa mga ito
kung makita mo ito.
Ngunit tiyak na malaman na hindi mo na kailangang isulat ito sa alinman sa iyong mga code.
Ngunit ito ay isang bagay na maging pamilyar sa, dahil makikita mo talaga magkasalubong
snippet ng code dito at doon kung saan ito: syntax,
AKA ang tatlong bagay operator, ay ginagamit.
>> Kaya mabilis na buod sa ano conditionals ay,
at kung ano ang mga pagpipilian ay magagamit sa iyo sa C. Mayroon ka Kung at kung-ibang,
at kung iba kung, at iba pa.
Maaari mong gamitin ang Boolean expression para sa mga gumawa ng mga desisyon.
>> Sa switch pahayag na ginagamit mo hiwalay kaso upang gumawa ng mga desisyon.
Gusto mong partikular na sabihin, kung ito ay isa, o kung ito ay dalawa, o kung ito ay tatlo,
Kailangan kong gawin ang bagay na ito, o ang bagay na ito, o ang bagay na ito.
At: maaari na ginagamit upang palitan ang napaka-simpleng kung-ibang mga sanga,
o kung-ibang chains upang gumawa ng tingnan ang iyong code ng kaunti fancy.
>> Ako Doug Lloyd.
At ito ay CS50.