1 00:00:07,370 --> 00:00:09,760 [Powered by Google Translate] TOMMY MACWILLIAM: tala skulum um lykkjur, einn af the sameiginlegur 2 00:00:09,760 --> 00:00:13,380 forritun býr við munum sjá allt CS50. 3 00:00:13,380 --> 00:00:15,570 Við munum nota lykkjur þegar við viljum til að framkvæma 4 00:00:15,570 --> 00:00:17,200 verkefni oftar en einu sinni. 5 00:00:17,200 --> 00:00:20,700 Til dæmis gætum við viljum að prenta "hæ" 100 sinnum eða prenta 6 00:00:20,700 --> 00:00:22,700 út allar stafina í stafrófinu. 7 00:00:22,700 --> 00:00:26,030 Í báðum þessum tilfellum höfum við eitt við viljum gera 8 00:00:26,030 --> 00:00:28,700 mörgum sinnum, prenta eitthvað út. 9 00:00:28,700 --> 00:00:31,970 En það sem við prenta út hvert skipti getur verið. 10 00:00:31,970 --> 00:00:34,530 Þannig að við getum gert eitthvað örlítið öðruvísi á hverjum 11 00:00:34,530 --> 00:00:37,820 endurtekning, eða keyra í gegnum, í lykkju. 12 00:00:37,820 --> 00:00:41,280 Við munum sjá þrjár mismunandi gerðir af lykkjur í C, en 13 00:00:41,280 --> 00:00:44,700 lykkjur, fyrir lykkjur, og gera á meðan lykkja. 14 00:00:44,700 --> 00:00:47,850 Þó þessar þrjár tegundir af lykkjur hafa mismunandi setningafræði, 15 00:00:47,850 --> 00:00:50,630 hugmyndir þeirra eru þau sömu. 16 00:00:50,630 --> 00:00:53,930 Við munum skilgreina nokkur kóðanum innan hrokkið axlabönd, 17 00:00:53,930 --> 00:00:57,810 kallast líkami lykkju, sem við viljum til að framkvæma 18 00:00:57,810 --> 00:00:59,790 sumir tala af sinnum. 19 00:00:59,790 --> 00:01:03,370 Með því að breyta gildi breytur notaðar í líkamanum, við 20 00:01:03,370 --> 00:01:07,570 getur lykkja okkar gera eitthvað öðruvísi í hvert skipti sem það er keyrt. 21 00:01:07,570 --> 00:01:10,750 Með hvaða lykkju við skrifum, munum við einnig að ákveða hvenær 22 00:01:10,750 --> 00:01:12,400 lykkja hætta að birtast. 23 00:01:12,400 --> 00:01:15,650 Ef við gerum það ekki, þá er traustur tölvan okkar mun halda áfram 24 00:01:15,650 --> 00:01:19,040 að keyra að lykkju þar til við að drepa forrit. 25 00:01:19,040 --> 00:01:22,490 Í grunni, gætum við notað endurtaka n sinnum 26 00:01:22,490 --> 00:01:24,600 blokk til að búa til lykkju. 27 00:01:24,600 --> 00:01:28,200 Öll stykki inni í blokk sem sagt endurtaka 10 28 00:01:28,200 --> 00:01:30,130 yrði að hlaupa 10 sinnum. 29 00:01:30,130 --> 00:01:34,160 Og þá viljum við fara í stykki eftir þessi lykkja. 30 00:01:34,160 --> 00:01:38,140 Svo hætta ástand okkar var einfaldlega þessi blokk hafi verið 31 00:01:38,140 --> 00:01:39,830 hlaupa 10 sinnum. 32 00:01:39,830 --> 00:01:43,900 Svo skulum endurskapa þetta í C. Til þess að grunni til að tryggja 33 00:01:43,900 --> 00:01:46,920 að verk innan endurtaka blokk eru keyrð 34 00:01:46,920 --> 00:01:51,180 nákvæmlega 10 sinnum, Scratch þarf að halda utan um hvert 35 00:01:51,180 --> 00:01:53,750 framkvæmd að endurtaka reitnum. 36 00:01:53,750 --> 00:01:56,790 Til að halda utan um hversu oft lykkja líkami okkar hefur verið 37 00:01:56,790 --> 00:02:00,360 framkvæma, við skulum búa til breytu sem heitir i. 38 00:02:00,360 --> 00:02:03,400 Við munum byrja ég burt á núlli þar sem lykkja okkar 39 00:02:03,400 --> 00:02:04,650 hefur ekki verið rekið enn. 40 00:02:10,009 --> 00:02:10,949 OK 41 00:02:10,949 --> 00:02:15,560 Nú munum við nota meðan leitarorð til að byrja á lykkju okkar. 42 00:02:20,100 --> 00:02:24,180 Nú munum við þurfa að reikna út þegar lykkja okkar mun hætta, en 43 00:02:24,180 --> 00:02:26,730 skulum hafa þetta í bili og koma svo aftur til þess. 44 00:02:30,970 --> 00:02:32,150 Allt í lagi. 45 00:02:32,150 --> 00:02:35,260 Inni í lykkju okkar, við skulum bara prenta skilaboð út, eins og 46 00:02:35,260 --> 00:02:38,535 "Hæ". Við getum notað printf virka fyrir þetta. 47 00:02:48,400 --> 00:02:49,230 Allt í lagi. 48 00:02:49,230 --> 00:02:54,210 Svo nú að við munum taka að endurtekning af lykkju líkamans hefur 49 00:02:54,210 --> 00:02:55,750 verið keyrð. 50 00:02:55,750 --> 00:03:00,320 Við getum gert það með því að bæta 1 til eða incrementing, gegn okkar 51 00:03:00,320 --> 00:03:01,740 breytilegur. i 52 00:03:01,740 --> 00:03:09,180 Til að gera það, getum við sagt að ég sé jafn i plús 1, eða fleiri 53 00:03:09,180 --> 00:03:16,520 einfaldlega, i plús plús. 54 00:03:16,520 --> 00:03:17,320 Frábært. 55 00:03:17,320 --> 00:03:21,810 Svo nú getum við séð að í hvert sinn sem lykkja okkar er litið, okkar 56 00:03:21,810 --> 00:03:24,500 gegn breytu fer upp um einn. 57 00:03:24,500 --> 00:03:29,410 Þannig að við vitum nákvæmlega hversu margar endurtekningar við höfum keyrt svo langt. 58 00:03:29,410 --> 00:03:31,630 Eftir einn endurtekning af lykkju, gildi okkar 59 00:03:31,630 --> 00:03:34,270 I verði 1. 60 00:03:34,270 --> 00:03:37,460 Eftir tvær endurtekningar, ég mun vera 2. 61 00:03:37,460 --> 00:03:42,640 Og eftir 10 endurtekningar, ég mun vera 10. 62 00:03:42,640 --> 00:03:46,780 Svo ef við viljum að keyra þessa lykkju nákvæmlega 10 sinnum, þá 63 00:03:46,780 --> 00:03:49,240 þetta er þegar við viljum hætta. 64 00:03:49,240 --> 00:03:53,860 Þannig viljum við að keyra þessa lykkju þegar ég er minna en 10, og 65 00:03:53,860 --> 00:03:57,630 það er einmitt það sem við munum skrifa, meðan ég 66 00:03:57,630 --> 00:04:02,450 er minna en 10. 67 00:04:02,450 --> 00:04:06,380 Þetta ástand lítur bara eins og þær aðstæður sem nú eru notuð í ef 68 00:04:06,380 --> 00:04:07,830 annars blokkir. 69 00:04:07,830 --> 00:04:11,690 Eftir að líkami lykkju okkar hefur verið framkvæmd, áætlun okkar 70 00:04:11,690 --> 00:04:14,690 verður að hoppa aftur upp lykkjurnar ástand. 71 00:04:14,690 --> 00:04:17,290 Ef skilyrðið er satt, þá er líkami 72 00:04:17,290 --> 00:04:18,990 lykkja verður að keyra aftur. 73 00:04:18,990 --> 00:04:22,190 Ef ástand er ekki lengur satt, þá lykkja okkar mun ekki vera 74 00:04:22,190 --> 00:04:25,700 hlaupa saman og vilja fara í næstu línu af kóða 75 00:04:25,700 --> 00:04:27,876 undir lykkju okkar. 76 00:04:27,876 --> 00:04:28,550 Allt í lagi. 77 00:04:28,550 --> 00:04:30,740 Svo skulum taka a líta á aðra tegund af 78 00:04:30,740 --> 00:04:33,000 lykkja er til hliðar. 79 00:04:33,000 --> 00:04:37,310 Við hliðina á meðan leitarorð, í sviga, við höfðum eitt, 80 00:04:37,310 --> 00:04:39,840 ástand sem þarf til að vera satt fyrir 81 00:04:39,840 --> 00:04:42,010 lykkja líkamann til að hlaupa. 82 00:04:42,010 --> 00:04:45,440 Það þýðir að við þurftum að búa til counter breytu okkar utan 83 00:04:45,440 --> 00:04:48,760 í lykkju og muna að hækka það á einhverjum tímapunkti 84 00:04:48,760 --> 00:04:51,050 inni í lykkju. 85 00:04:51,050 --> 00:04:54,320 Hausinn á okkar fyrir lykkju, hins vegar, hefur þrjá 86 00:04:54,320 --> 00:04:58,510 hlutum, sem hver um sig verður aðskilin með semíkommu. 87 00:04:58,510 --> 00:05:01,950 Í fyrsta þriðjung okkar, getum við lýst því yfir hvaða teljara eða hjálpar 88 00:05:01,950 --> 00:05:05,000 breytur sem við viljum nota í lykkju okkar. 89 00:05:05,000 --> 00:05:07,350 Í raun, þetta getur verið mjög gagnlegt. 90 00:05:07,350 --> 00:05:10,590 Við virkilega þarft ekki að breyta, I, eftir stund okkar 91 00:05:10,590 --> 00:05:13,650 lykkja er keyrt, svo við í raun ætti ekki að þurfa að lýsa því 92 00:05:13,650 --> 00:05:15,810 utan lykkju. 93 00:05:15,810 --> 00:05:19,080 Hin þriðja verður því skilyrði að vera satt 94 00:05:19,080 --> 00:05:21,850 fyrir líkamann til að framkvæma aftur, rétt eins og 95 00:05:21,850 --> 00:05:23,330 í lykkju meðan okkar. 96 00:05:23,330 --> 00:05:26,350 Í síðasta þriðjung okkar, getum við keyrt yfirlýsingu sem verður 97 00:05:26,350 --> 00:05:30,270 keyrð eftir hverja endurtekning lykkju, þannig að við höfum ekki 98 00:05:30,270 --> 00:05:32,710 að byggja það inn í lykkju líkamanum. 99 00:05:32,710 --> 00:05:38,390 Svo skulum skrifa fyrir lykkju sem telur niður 5-1. 100 00:05:38,390 --> 00:05:41,790 Við munum byrja með fyrir leitarorð. 101 00:05:41,790 --> 00:05:44,680 Við getum búið til gegn breytu fyrst, sem við munum 102 00:05:44,680 --> 00:05:47,840 stillt á 5 þessum tíma þar sem við erum að telja niður, 103 00:05:47,840 --> 00:05:50,110 fylgt eftir með semíkommu. 104 00:05:50,110 --> 00:05:53,660 Næst er ástand okkar, sem við munum koma til baka. 105 00:05:53,660 --> 00:05:57,540 Í þriðja lagi viljum við að lækka gegn breytu okkar eftir 106 00:05:57,540 --> 00:05:59,620 hver endurtekning á lykkju. 107 00:05:59,620 --> 00:06:04,740 Svo frekar en að segja að ég auk auk, munum við segja að ég mínus mínus. 108 00:06:04,740 --> 00:06:05,300 Allt í lagi. 109 00:06:05,300 --> 00:06:09,490 Þannig að við viljum að lykkja líkama til að keyra meðan ég er enn 110 00:06:09,490 --> 00:06:11,960 hærri en 0. 111 00:06:11,960 --> 00:06:16,160 Í meginmál lykkju, við skulum prenta út gildi i. 112 00:06:16,160 --> 00:06:20,480 Til að gera það, munum við nota printf virka, með% d 113 00:06:20,480 --> 00:06:21,650 tákn. 114 00:06:21,650 --> 00:06:24,820 Mundu að þessi tákn komi með 115 00:06:24,820 --> 00:06:27,040 gildi i. 116 00:06:27,040 --> 00:06:32,060 Að lokum, við skulum bæta við yfirlýsingu eftir okkar fyrir lykkju. 117 00:06:32,060 --> 00:06:35,850 Þegar við að keyra þessa lykkju, ég mun byrja á 5, 118 00:06:35,850 --> 00:06:38,070 svo 5 verður prentað. 119 00:06:38,070 --> 00:06:42,000 Þegar fær i á 0, áframhaldandi ástand, er i 120 00:06:42,000 --> 00:06:44,450 stærra en 0, þá ekki lengur að halda. 121 00:06:44,450 --> 00:06:47,330 Svo lykkja okkar mun hætta framkvæmd, og við munum sjá 122 00:06:47,330 --> 00:06:49,850 yfirlýsingu eftir lykkju. 123 00:06:49,850 --> 00:06:51,340 Svo skulum keyra þennan kóða. 124 00:06:51,340 --> 00:06:52,700 Fyrst munum við taka saman 125 00:06:52,700 --> 00:06:56,460 countdown.c með að niðurtalning. 126 00:06:56,460 --> 00:06:59,320 Nú getum við keyrt þennan kóða með. / Niðurtalningu. 127 00:07:02,340 --> 00:07:06,040 Í bæði á meðan lykkjur og lykkjur, framhald okkar 128 00:07:06,040 --> 00:07:09,010 ástand verður kannað áður líkamanum 129 00:07:09,010 --> 00:07:10,960 af lykkja er keyrð. 130 00:07:10,960 --> 00:07:13,840 Það þýðir að ef ástand okkar er ekki fyrst 131 00:07:13,840 --> 00:07:18,100 satt, þá er líkami lykkju okkar mun aldrei að keyra. 132 00:07:18,100 --> 00:07:22,060 Svo það er stundum gagnlegt að athuga ástand eftir 133 00:07:22,060 --> 00:07:25,150 Lík lykkju frekar en fyrir það. 134 00:07:25,150 --> 00:07:28,270 Svo skulum skrifa lykkju til að hvetja notandann til fjölda 135 00:07:28,270 --> 00:07:30,990 þar til jákvæð númerið. 136 00:07:30,990 --> 00:07:34,740 Ef notandi inntak neikvæð tala, munum við vilja til að biðja þá 137 00:07:34,740 --> 00:07:36,260 í annað númer. 138 00:07:36,260 --> 00:07:38,940 Þannig að við munum vilja það hvetja til að vera inni í 139 00:07:38,940 --> 00:07:41,050 líkami á hliðar. 140 00:07:41,050 --> 00:07:44,730 En þegar lykkja er keyrt í fyrsta skipti sem notandinn 141 00:07:44,730 --> 00:07:46,750 hefur ekki gefið okkur númerið ennþá. 142 00:07:46,750 --> 00:07:49,640 Þannig að það er ekki skynsamleg til að athuga hvort það er jákvætt. 143 00:07:49,640 --> 00:07:54,020 Þess í stað munum við vilja til að athuga númer eftir líkamanum 144 00:07:54,020 --> 00:07:55,720 The Loop er keyrt. 145 00:07:55,720 --> 00:08:00,310 Við getum gert þetta með gera á meðan lykkja. 146 00:08:00,310 --> 00:08:03,560 Fyrst munum við búa til breytu, N, sem mun halda 147 00:08:03,560 --> 00:08:05,230 notandans inntak. 148 00:08:05,230 --> 00:08:09,960 Nú munum við nota gera leitarorð, eftir hrokkið axlabönd sem 149 00:08:09,960 --> 00:08:12,930 mun byrja á líkama lykkju okkar. 150 00:08:12,930 --> 00:08:16,230 Í líkamanum, við getum hvetja notandann til fjölda við 151 00:08:16,230 --> 00:08:18,480 GetInt virka. 152 00:08:18,480 --> 00:08:23,230 Nú munum við viljum að líkaminn þessa lykkju til að framkvæma aftur ef 153 00:08:23,230 --> 00:08:28,370 notandinn slegið neikvæð tala, þannig að við munum segja að á meðan N 154 00:08:28,370 --> 00:08:30,420 er minna en 0. 155 00:08:30,420 --> 00:08:33,140 Tilkynning semíkommu hér eftir meðan yfirlýsingu. 156 00:08:38,909 --> 00:08:40,679 Svo skulum keyra þennan kóða. 157 00:08:40,679 --> 00:08:44,780 Fyrst munum við taka saman það með að gera jákvætt. 158 00:08:44,780 --> 00:08:49,340 Nú getum við hlaupa the program með. / Jákvætt. 159 00:08:49,340 --> 00:08:52,660 Ef við gefum þetta forrit neikvæð tala, eins og neikvæð 160 00:08:52,660 --> 00:08:56,560 4, þá munum við vera beðin aftur um númer frá því 161 00:08:56,560 --> 00:09:00,490 ástand gera okkar meðan lykkja var satt. 162 00:09:00,490 --> 00:09:04,690 Þegar við gefa jákvæð tala, eins og 8, þá 163 00:09:04,690 --> 00:09:08,560 ástand gera okkar meðan lykkja ekki lengur satt. 164 00:09:08,560 --> 00:09:12,080 Svo lykkja verður ekki keyrð aftur. 165 00:09:12,080 --> 00:09:15,290 Og það er það fyrir þriggja flokka lykkjur við munum nota í C. 166 00:09:15,290 --> 00:09:18,840 Mitt nafn er Tommy, og þetta er CS50.