Tout dwa.
Se konsa, kounye a kite a pale sou yon bagay reyèlman itil nan Programming
deklarasyon kondisyonèl.
Ekspresyon Se konsa, kondisyonèl pèmèt pwogram ou
pou pran desizyon pou ak pran diferan fouchèt nan wout, yon bagay nan
Mwen mansyone ti kras pi bonè, tou depann de valè yo nan varyab,
oswa ki baze sou sa entrain yo itilizatè a pwogramè a, nan liy la bay lòd,
oswa si w gen yon èd memwa oswa yon bagay tankou sa.
C gen yon koup nan diferan fason yo eksprime ekspresyon kondisyonèl, ki
nou menm tou nou pafwa pral rele yon branch kondisyonèl nan pwogram ou yo.
Se konsa, kèk nan sa yo yo ale nan gade bèl abitye nan ou nan grate,
se konsa nou pral menm rale yo moute kòt a kòt, jis
ou ka fè ki analoji nan tèt ou.
>> Se konsa, si se yon if-- bèl senp kondisyonèl.
Si ou sonje soti nan grate sou bò dwat la isit la
ou te kapab ranpli nan se sa ki egzagòn ak yon espresyon ble si sourit desann
oswa si x se mwens pase 10, oswa yon bagay tankou sa.
Lè sa a,, si x te mwens pase 10, oswa si sourit la te an reyalite, desann,
tout nan kòd la andedan nan la moso devinèt ta egzekite.
Tout bagay sa yo ki anfòm andedan ki fòm C.
>> Menm jan an tou, èske nou gen si sou bò gòch la a.
Si ekspresyon Boolean, ki mwen jis lè l sèvi avèk
kòm yon ranplasan pou youn nan Boolean a ekspresyon nou deja diskite,
louvri atèl Curly, fèmen atèl Curly.
Se konsa, panse a louvri Curly atèl ak fèmen atèl Curly
kòm sòt de analoji nan sandwich a efè nan si blòk la sou bò dwat la
nan grate.
>> Si ekspresyon ki Boolean nan si deklarasyon an se vre,
lè sa a tout liy ki nan kòd ant aparèy òtopedik yo Curly
ap egzekite yo nan lòd depi anwo jouk anba.
Si ekspresyon ki Boolean se fo, nou pral
sote sou tout bagay nan ant aparèy òtopedik yo Curly, paske nou sèlman
vle ale desann sou menm fouchèt nan wout la si ekspresyon ki Boolean se verite.
>> Nou ka pran etap sa a yon sèl pi lwen ak si lòt bagay.
Se konsa, sa blòk Grafouyen se bèl menm jan ak yon sèl nan
nou te wè jis yon dezyèm de sa, eksepte li pran de chemen diferan ki baze
sou sa ki rive.
Se konsa, si sourit la te desann, oswa si x te mwens pase 10,
nou pral fè tout sa ki sa a, se nan ant ki premye fouchèt, ke premye C.,
>> Sinon, si sourit la se moute, oswa x se pa pi piti pase 10,
nou pwal fè tout bagay nan mete nan dezyèm fwa.
Epi sa a, analoji nan sa ou wè isit la pou C. Si Boolean ekspresyon,
fè bagay ki genyen ant a premye mete nan aparèy òtopedik Curly.
Lòt Bagay, fè bagay ki genyen ant a dezyèm mete nan aparèy òtopedik Curly.
Se konsa, si Boolean a ekspresyon se vre, nou pral
fè tout sa a ant seri a an premye.
Si ekspresyon ki Boolean se fo, ki ta deklanche lòt bagay la,
e nou ta fè tout sa a nan seri an dezyèm nan aparèy òtopedik Curly.
Yon fwa ankò, anwo jouk anba, tout liy nan ant aparèy òtopedik yo.
>> Nan C, li posib yo kreye yon si-lòt bagay si-chèn lòt bagay.
An reyalite ou ka gen si-lòt bagay si-lòt bagay si-lòt bagay, si, ak sou sa ak sou sa ak pou
sou.
Nan grafouyen, sa a egzije nidifikasyon blòk yo.
Ou ajoute yon lòt bagay si-, epi ou te gen nan mete yon lòt yon sèl andedan nan lòt la,
ak sou sa, epi li te resevwa kalite a enbrike ak konplike.
Men, C, nou pa gen fè sa.
Nou ka aktyèlman jis gen li gen yon chèn tankou sa a.
Yon fwa ankò, jan ou ta ka atann yo, tout nan branch sa yo, se mityèlman eksklizif.
Ou kapab sèlman janm ale desann yon sèl nan branch la.
Si sa a se vre.
Sinon, si sa a se vre.
Sinon, fè sa.
Se konsa, tout kat nan branch yo nan sa a egzanp yo se mityèlman eksklizif.
Se yon chèn si-lòt bagay si-lòt bagay.
>> Li se posib menm si, epi pafwa trè itil,
yo kreye yon chèn nan pa branch mityèlman eksklizif.
Nan egzanp sa a, se sèlman twazyèm ak nan branch katriyèm se mityèlman eksklizif.
Li ta ka ke ou te kapab satisfè kondisyon an premye,
epi ou ka satisfè kondisyon, dezyèm lan,
epi ou ka satisfè nan twazyèm condition-- nan ka sa a
ou ta desann branch lan premye, Lè sa a, ou ale desann yon branch dezyèm lan,
Lè sa a, ou ta desann branch lan twazyèm.
Oswa petèt ou satisfè premye a kondisyon, ak kondisyon, dezyèm lan,
men ou pa ka plen vant kondisyon an twazyèm.
Nan ka sa a ou ale desann premye a branch ak branch, dezyèm lan,
ak Lè sa a branch lan katriyèm,
>> Rezon ki fè la pou sa a se ke lòt moun nan pral sèlman mare ki pi pre a si.
Se konsa, menm si gen nan yon lòt bagay isit la, ki
pa nesesèman kreye yon mityèlman san konte chèn nan tout bagay.
Li nan sèlman ekspresyon an la ansanm ak Boolean
ekspresyon sa a, se nan 3-- mityèlman eksklizif ak lòt moun nan.
Se konsa, li posib, epi pafwa byen itil,
jan mwen te di, yo kreye yon chèn nan branch pa mityèlman eksklizif.
Se pou nou pran yon gade nan yon diferan kalite kondisyonèl, ki
nou pa te wè anvan nan grafonyen moun.
Genyen yon bagay yo rele deklarasyon an switch.
Deklarasyon an switch se kalite pwòp paske li nan
yon deklarasyon kondisyonèl ki pèmèt ou presize ka distenk,
olye pou yo repoze sou Boolean ekspresyon pou pran desizyon pou pou ou.
Se konsa, pou egzanp, kite a di ke mwen gen pwogram sa a,
ak mwen mande itilizatè a bay opinyon m '.
Se konsa, mwen di, int x = Jwenn Int (), epi si w ap pa abitye ankò,
jwenn int se yon fonksyon ki se tou te gen ladann nan bibliyotèk la CS50,
kidonk si w # enkli CS50.H ou pral gen aksè nan Jwenn Int () ak tout nan li yo
cousins-- GetFloat, GetString, ak sou sa.
Fondamantalman yon sèl Jwenn fonksyon pou chak kalite done ke nou te deja diskite.
>> Se konsa, Int x egal GetInt.
Fondamantalman sa k ap pase se mwen se nan tèminal la.
Mwen mande itilizatè a tape nan yon nimewo.
>> Ak isit la mwen oblije chanje sa m ap fè, tou depann
sou sa ki itilizatè a tape nan èd memwa a.
Se konsa, si yo tape yon sèl, Mwen enprime soti yon sèl.
Lè sa a, mwen kraze.
Si yo tape de, mwen enprime soti de.
Lè sa a, mwen kraze.
Li enpòtan kraze ant chak ka
paske otreman ou pral tonbe nan.
Se konsa, si mwen pa t 'gen nenpòt repo a, ak itilizatè a
youn tape, sa ki ta rive se li ta enprime yon sèl, de, twa, regrèt.
Sa a kalite konpòtman etranj, dwa?
Ou ta ka panse sa.
Men, gen aktyèlman kèk ka kote sa a ta ka yon bagay trè itil.
Se konsa, isit la nan yon lòt egzanp nan yon switch deklarasyon kote mwen oblije repo yo.
Men, mwen fè l 'sou rezon.
>> Se konsa, sa k ap pase isit la?
Panse pou yon dezyèm fwa.
Ou ka menm vle pran yon poz videyo a.
>> Kisa k ap pase isit la si kalite yo itilizatè kat?
Se konsa, mwen te mande itilizatè a pou D '.
Apre sa, yo bay valè a 4.
Ki sa ki vin enprime lè m 'fè sa?
Sou glise nan anvan yo, te gen repo ant tout ka yo.
Se konsa, li ta jis enprime kat ak Lè sa a sispann.
Men, nan ka sa a, li pa pral.
Kisa ki pral rive se ou pral tonbe nan chak ka.
>> Se konsa, nan ka sa a mwen te òganize ka mwen nan yon fason ke si kalite mouvman yo itilizatè 4,
Mwen pral enprime kat, twa, de, yon sèl, eksplozyon an.
Men, si yo tape 5, mwen ta kòmanse nan senk ak fè menm bagay la.
Si yo tape 1, mwen ta jis fè yon sèl, eksplozyon an.
>> Se konsa, nan ka sa a, mwen lè l sèvi avèk yon switch kalite malen se konsa
ke mwen gen entansyon tonbe nan tout ka yo.
Men, jeneralman w ap pwobableman pral vle kraze ant tout nan yo,
sof si ou gen yon sitiyasyon tankou yon sèl sa a kote w ap
kalite swe lefèt ke ou pral tonbe nan ka yo san yo pa yon ti repo.
Se konsa, sa a, se dezyèm lan nan gwo nan kalite deklarasyon kondisyonèl.
Dènye a nan yo ki se: Se konsa, mwen gen de koupe nan C Kòd isit la.
Youn sou bò gòch la, yonn sou bò dwat la.
Yon sèl nan sou bò gòch la ta dwe pwobableman dwe trè abitye nan ou.
>> Mwen gen Int x.
Apre sa, mwen pwobableman ta dwe te mande itilizatè a
pou- sa a ta dwe pwobableman ap Int x egal GetInt, oswa yon bagay tankou sa.
Lè sa a, m ap fè yon desizyon.
Si gen kèk ekspresyon Boolean se vre, bay x valè nan 5.
Sinon, bay x valè a 6.
>> Sa sou bò gòch la ta dwe pwobableman dwe bèl abitye soti nan diskisyon nou an
a Si Lòt Bagay jis yon ti moman de sa.
Èske ou ta dwe etone yo konnen ke liy lan sou bò dwat la
fè menm bagay la egzak?
>> Se konsa, sa yo rele: oswa pafwa rele operatè a tèrsyèr.
Apre sa, li a trè fre.
Li nan anjeneral itilize kòm yon Trick bèl.
>> Men, sa ki li pèmèt ou fè se simulation yon Si Lòt Bagay ak reyèlman piti,
reyèlman trivyalman kout branch kondisyonèl.
Ou jeneralman yo pa ta sèvi ak: si ou te gen sis liy nan Kòd ant chak mete
aparèy òtopedik a Curly.
Men, si w ap jis fè yon desizyon rapid,
si w ap ale nan fè yon bagay oswa lòt la epi li trè senp,
sa a ta kapab yon egzanp pou konnen kijan pou fè l 'ak: operatè a tèrsyèr.
Se konsa, Int x egal ekspresyon?
Bagay la apre kesyon an make se valè sa a x
yo pral si ekspresyon se verite.
>> Bagay la apre a kolon se sa ki valè x nan
ta ye si ekspresyon an te fo.
Se konsa, mwen mande tèt mwen, se ekspresyon ki vre?
Si li se, bay x valè nan 5.
Si li nan pa, bay x valè a 6.
Yon fwa ankò, tankou mwen te di.
Sa a se anjeneral jis yon Trick bèl.
Epi pafwa si ou vin reyèlman konfòtab ak li,
ou pral fè sa a paske li sanble kalite fre nan pwogram ou yo.
Anjeneral mwen prezante l 'bay ou koulye a se konsa w ap abitye ak li
si ou wè li.
Men, sètènman konnen ou pa gen yo ekri l 'nan nenpòt nan kòd ou a.
Men, li se yon bagay yo dwe abitye avèk, paske ou pral definitivman rankontre
koupe nan kòd isit la ak gen kote sa a:? sentaks,
AKA operatè a tèrsyèr, se itilize.
>> Rezime Se konsa, rapid sou sa kondisyonal ye,
ak sa ki opsyon ki disponib nan yo disponib jwenn ou nan C. Ou gen Si epi si-lòt bagay,
epi si lòt moun si, et setra.
Ou kapab sèvi ak ekspresyon Boolean pou moun pou pran desizyon pou.
>> Avèk deklarasyon switch ou itilize ka disrè pou pran desizyon pou.
Ou ta espesyalman di, si li la yon sèl, oswa si li nan de, oswa si li nan twa,
Mwen pral fè bagay sa a, oswa bagay sa a, oswa bagay sa a.
Epi: ka yo dwe itilize ranplase branch si-lòt bagay trè senp,
oswa si-lòt bagay chenn fè kòd ou a gade yon ti kras anpenpan.
>> Mwen se Doug Lloyd.
Lè sa a se CS50.