Doug LLOYD: Kull dritt, hekk ejja nitkellmu dwar loops. Allura loops huma tip ta 'kessaħ għaliex dawn jippermettu program tiegħek li jesegwixxi linji ta 'kodiċi aktar u aktar u aktar. Ripetutament, mingħajr ma jkollhom kopja u paste jew inkella rrepetuti. Hemm tliet maġġuri tipi ta 'loops tkun taf tara. Int ser ikollok probabbilment ikollhom okkażjoni biex jintuża kull waħda kif inti progress permezz CS50. Xi wħud minn dawn loops huma pretty familjari għalik mill-bidu, Għalhekk għal darb'oħra, kif għamilna ma conditionals, aħna ser jpoġġuhom up ħdejn xulxin jekk ikun hemm analoġija nistgħu tiġbed. L-ewwel hija għal dejjem mill-bidu nett, b'hekk meta mqabbel waqt (veru). Dan hu dak li nsejħu loop infinita. Il-linji ta 'kodiċi bejn l-kaboċċi ċingi, ħafna bħall-biċċiet puzzle li jaqblu ġewwa l-C tal-blokk għal dejjem, se tesegwixxi ripetutament minn fuq għal isfel, aktar u aktar u aktar, dejjem. Wara kollox, jekk inti recall tagħna diskussjoni ta 'espressjonijiet Boolean, reali hija dejjem veru. Allura jekk aħna qed tagħmel xi ħaġa sakemm veru huwa true-- jidher silly-- ftit veru huwa dejjem veru, u għalhekk ser dejjem jimxu. Hija ser jimxu dejjem u dejjem ta 'dejjem sakemm aħna ssib mod biex break out ta 'dan ma dikjarazzjoni waqfa, li għal darb'oħra, rajna ftit ftit ilu aħna kienu jitkellem dwar switch. Jew inkella biss joqtol tagħna programm, li inċidentalment, jekk inti qatt issib ruħek fil- sitwazzjoni ma 'loop infinita u ma tafx kif twaqqaf program tiegħek milli titħaddem. Just hit kontroll u C u li ser joqtlu program tiegħek għalik. Iżda dan, għal darb'oħra, huwa jissejjaħ loop infinita. Huwa loop li se jimxu dejjem. Issa, filwaqt li loops mhumiex dejjem infinita, minħabba wkoll nistgħu tissostitwixxi l-Boolean espressjoni ma 'xi ħaġa ftit aktar utli minn sempliċiment veru. So here eżempju ieħor. Waqt u xi Boolean espressjoni u braces mbagħad kaboċċi. Li pretty ħafna analogi li jirrepetu sakemm, mill-bidu. Għalkemm fit-tieni, I ser jispjega d-differenza. Għalhekk fl C, jekk l-espressjoni Boolean ġewwa tal-linja waqt tevalwa lill veru, il-linji ta kodiċi bejn l-braces kaboċċi se tesegwixxi ripetutament aktar u aktar u aktar sakemm l-espressjoni Boolean tevalwa lil falza. Hekk per eżempju, inti tista ' għandhom xi tip ta counter. Allura ngħid inti fil-bidu ta ' dan loop jgħidu int x ugwali żero. Filwaqt x hija inqas minn 100, do ftit affarijiet ġewwa li ċingi kaboċċi, imbagħad fl-aħħar ta 'linja tiegħek, inti tgħidli x plus plus, int inkrementazzjoni x. Eventwalment x ser tikseb sa 100 u int se stop minħabba li l-kundizzjoni x hija inqas minn 100 mhux se jibqgħu vera kif Hekk kif x hija ugwali għal 100. 100 ma jkunx inqas minn 100. Issa kemmxejn joħloq konfużjoni, l-imġiba tal-blokka scratch hija maqluba. Allura jkun verament attenti jekk dan huwa ewwel foray fis-użu loops tiegħek. Bażikament, il irrepeti sakemm blokk Scratch se jirrepeti xi ħaġa aktar u aktar u aktar, sakemm l-espressjoni, il-Boolean espressjoni fil-b'ħeksagon hija vera. Għalhekk se tkompli tagħmel sakemm huwa veru. Sadanittant, il-loop filwaqt ser tkompli tagħmel dan sakemm ikun falz. Allura jkunu pjuttost simili, iżda hemm din id-distinzjoni ftit biss li tkun attenta ta 'speċjalment kif inti tagħmel ewwel foray tiegħek mill transizzjonijiet li Scratch fis c. It-tip li jmiss ta 'loop huwa attwalment pretty simili. Huwa sejjaħ l-do filwaqt loop. Dan loop se twettaq il-linji kollha tal-kodiċi bejn l-braces kaboċċi darba, u mbagħad se tivverifika l-espressjoni Boolean. Jekk l-espressjoni Boolean tevalwa lil veru, dan ser tmur lura u rrepeti dak il-proċess aktar u aktar u aktar sakemm l Boolean espressjoni tevalwa lil falza. Allura dan loop, kuntrarjament għal loop waqt, huwa garantit li jimxu mill-inqas darba. Dan jista 'jkun pjuttost utli. Fl-aħħar nett, għandna għal loop. Għal linji huma tip ta ' sintattikament attraenti u hemm ħafna li jmorru hawn fuq, sabiex iġorru miegħi kif aħna nippruvaw u break dawn il-biċċiet bogħod minn xulxin. Ġeneralment, il-każ l-użu ta 'għall loop huwa inti tixtieq li jirrepetu xi ħaġa numru speċifiku ta 'drabi. F'dan l-eżempju hawn, Għandi l-blokk jirrepetu minn Scratch, li hija analoga għall-għall loop fis-C, tirrepeti xi ħaġa 10 darbiet. U l-linja fuq għal ix-xellug hemm, li huwa ta 'erba loop li ser jagħmlu l-istess ħaġa. Dan imur 10 darbiet. Li jibda jgħodd mill żero, aħna inkrement kull pass tal-linja. U aħna iżommu tagħmel dak sakemm i huwa inqas minn 10. Allura x'jiġri? Hemm lott kollu ta 'kodiċi hemmhekk. Ejja din tinqasam għal dak li qed jiġri pass pass kif aħna ħaffer permezz ta 'għall loop. L-ewwel ħaġa li ġara huwa il-varjabbli counter huwa center. Kollox għall-xellug ta 'dik l-ewwel punto virgola ġewwa l parentesi hija esegwita. F'dan il-każ, aħna qal int i ugwali 0. Li tiddikkjara varjabbli ġdida msejħa i, li varjabbli huwa numru sħiħ tip u aħna qed tgħid il-valur ġewwa dak il-varjabbli se tkun żero. It-tieni ħaġa li nagħmlu huwa aħna mbagħad tivvaluta immedjatament l-espressjoni Boolean. Espressjoni Boolean huwa fil- nofs taż-żewġ semicolons. I huwa inqas minn 10. Dan huwa veru hawn, id-dritt? Aħna biss qal i huwa ugwali għal żero, u għalhekk 0 huwa inqas minn 10, u sabiex il-kundizzjoni hija vera u aħna issa se jipproċedi biex tesegwixxi l-korp tal-linja. Jekk kien falz. Jekk, per eżempju, I qal minflok i huwa ugwali 0 hemm għidt i ugwali 15, int i ugwali 15. Well 15 ma jkunx inqas minn 10, hekk aħna qatt ma jidħlu fil-ġisem tal-linja minħabba li l-espressjoni Boolean se tevalwa hemm li hi falza. Wara aħna jgħaddu minn fuq għal isfel, aħna jiltaqgħu li jagħlqu kaboċċi Brace, tielet ħaġa jiġri. Il-varjabbli counter huwa inkrementat, jew minflok, il-linji tal-kodiċi ta 'dikjarazzjoni wara l- tieni virgola ġewwa tal- għall-parentesi loops jiġi eżegwit. Allura nibdew mill qal int i ugwali 0. Imbagħad aħna tivverifika jekk jew le l-espressjoni Boolean huwa veru. 0 hija inqas minn, 10 dan huwa veru. Allura aħna qed tmur biex jipproċedi fil-ġisem tal-linja. Affarijiet se jiġri ġewwa l-loop, u meta aħna jiltaqgħu li kaboċċi għeluq Brace, il-ħaġa li jmiss aħna tagħmel huwa ngħidu i plus, plus. I kien żero issa i huwa wieħed. Imbagħad, aħna napprovaw jivverifika l-valur tal l-espressjoni Boolean fin-nofs. Wieħed huwa inqas minn 10. Allura aħna ser jgħaddu din proċess ġdid u għal darb'oħra. Aħna ser jiksbu l-għeluq Brace kaboċċi ġdid. Aħna ser inkrement i minn 1 sa 2 u 2-3. U hekk u hekk u hekk, sakemm eventwalment valur i tal isir 10. Hija 10 inqas minn 10? No Għadd minn 0, konna marret permezz 10 iterazzjonijiet ta loop. Imxejna ripetut 10 darbiet, just kif għamilna fil-blokk Scratch. U hekk dan huwa bażikament l- proċess għal erba loop. Issa jieħdu l bogħod l- kodiċi attwali u t-tqegħid fi ftit xi stqarrijiet ġenerali bażiċi. Hawn dak li jiġri. Il-dikjarazzjonijiet fil tibda huma esegwiti ewwel. Inti jista 'jkollok aktar minn wieħed. Imbagħad, l-espressjoni Boolean hi ċċekkjata. Jekk l-espressjoni tevalwa lil vera, tesegwixxi l-ġisem tal-linja ta 'darba. Jekk l-espressjoni jevalwa li falza, aħna qed isir. Aħna ma teżegwixxi l- korp tal-linja fil-livelli kollha. Wara konna wettaq l- ġisem tal-loop darba, aħna mbagħad jagħmlu dak li hu fil il-parti inkrement hemmhekk. Li normalment se tkun xi ħaġa bħal i plus, plus jew xi ħaġa bħal dik, dik jimmodifika varjabbli counter. Imbagħad, wara we inkrement, aħna jivverifika l-espressjoni mill-ġdid u rrepeti dawk il-passi aktar u aktar u aktar sakemm l-espressjoni hija aktar veru. Allura x'inhuma l-każijiet ta 'użu għal loop? Uża tuża loop filwaqt meta inti tixtieq loop jirrepetu numru mhux magħruf ta 'drabi, iżda possibbilment ma jista run kollha. Eżempju verament komuni ta ' filwaqt looping qed jintuża huwa li tmexxi l-fluss kontroll għal logħba. Inti tista 'ma jafux kemm żmien il- utent se tkun playing, iżda inti tixtieq li żżomm tagħmel l-istess ħaġa. Aġġornament tal-pożizzjonijiet ta ' diversi sprites fuq il-bord. Inti tixtieq li żżomm affarijiet jiċċaqalqu f'kull ħin, imma ma tafx meta l- utent se stop playing jew meta jkunu qed tmur li jispiċċaw tal-ħajja. Allura loop filwaqt verament tajba għal xi ħaġa bħal dik. Li l-każ użu tajjeb. Għal do filwaqt loop, huwa pjuttost simili. Inti tixtieq loop jirrepetu mhux magħruf numru ta 'drabi, iżda mill-inqas darba. Inti tista 'tuża dan għal logħba wisq, iżda biss każ użu verament komuni huwa suġġeriment l-utent għall-input. Ġeneralment, inti jista 'jgħid xi ħaġa simili, tagħti me numru sħiħ pożittiv, u inti tista 'tpoġġi li ġewwa ta 'do filwaqt loop. Għalhekk dejjem ser jistaqsu lilhom fil inqas darba għal numru sħiħ pożittiv. Jekk huma jagħtuk numru sħiħ pożittiv, inti tista 'break out tal-linja. Inti jista 'jsir. L-espressjoni Boolean fl Il-waqt do jista 'jkun falz. U int mhux se jitlob jerġgħu. Jekk huma jagħtuk numru negattiv fejn dawn it-tip xi kelma jew xi ħaġa li mhux verament utli li inti, inti tista 'tuża l- do filwaqt loop li jmorru lura u jagħmlu ġdid u għal darb'oħra u għal darb'oħra. You definitely tixtieq li tistaqsi biex jagħtuk numru darba, imma inti ma taf kif ħafna drabi wara li dawn jistgħu jagħmlu l-ħsara. U hekk do filwaqt li huwa użu kbir każ biex jinkoraġixxi l-utent għall-input. U għal linji użu każ tipikament huwa meta inti tixtieq li jirrepetu loop numru diskret ta 'drabi, għalkemm inti tista 'ma jaf in-numru ta 'drabi Bħalissa l-programm hija miġbura. Hekk per eżempju, forsi inti għandek program fejn inti fil-pront l-utent għal numru. U dawn jidħlu 100. U mbagħad tiegħek għall loop se f'dak il-każ run 100 darba. Jew forsi dawn jidħlu 1000 fil-programm tiegħek u mbagħad għaddi l-linja 1,000 darba. Huwa numru speċifiku ta 'drabi. Dawn mhux bilfors jafu liema dak in-numru huwa l-programm mument hija miġbura. Mhuwiex simili linja waqt fejn jista 'jkun infinita. Huwa pjuttost numru li inti biss ma nafx. Issa anki jekk stajt deskritti f'dawn il-każijiet kollha ta 'użu, inti għandek tkun taf li fil pretty ħafna kull ċirkustanza, inti tista interskambjali kollha tlieta minn dawn loops. Tista 'tuża għall loop fejn inti kieku tuża loop waqt. Tista 'tuża għall loop kull fejn youd tuża do filwaqt loop u l-bqija. Hija tista 'tkun ftit delikata kultant, għalhekk ġeneralment huwa prattika tajba li jaderixxu għal każ tipiku użu. Uża do filwaqt loop jekk inti riedu xi ħaġa darba, mill-inqas. Uża għal loop jekk inti tixtieq li tagħmel xi ħaġa numru speċifiku ta 'drabi. Wara kollox, dan huwa għaliex hemm tliet tipi differenti ta 'linji. Sabiex ikunu jistgħu jintużaw fil-kuntest it-tajjeb. Iżda int tista 'interskambjali jekk inti tixtieq. Jekk tħossok komdu ma 'linji waqt u inti dejjem tixtieq li tuża waqt loops. Hija xi ħaġa li inti tista 'tagħmel, għalkemm jista 'jkun sintattikament ftit delikata, fejn għal loop ikun ħafna aktar sempliċi. Jisimni Doug Lloyd u dan huwa CS50.