1 00:00:00,000 --> 00:00:05,410 2 00:00:05,410 --> 00:00:07,640 >> DOUG LLOYD: Bütün sağ, belə ki, nin loops haqqında danışmaq edək. 3 00:00:07,640 --> 00:00:10,015 Belə ki, loops cür sərin var onlar proqram imkan verir, çünki 4 00:00:10,015 --> 00:00:12,050 kodu xətləri icra üzərində və üzərində. 5 00:00:12,050 --> 00:00:15,600 Dəfələrlə, olmadan surəti və yapışdırıb və ya başqa onları təkrar. 6 00:00:15,600 --> 00:00:17,630 Əsas üç var görürsünüz loops növləri. 7 00:00:17,630 --> 00:00:21,010 Siz yəqin ki, istifadə etmək münasibətilə lazımdır hər bir CS50 vasitəsilə tərəqqi kimi. 8 00:00:21,010 --> 00:00:22,940 Bu loops bəzi olduqca var Not sizə tanış, 9 00:00:22,940 --> 00:00:25,814 belə ki, daha, biz conditionals ilə kimi, biz yan-yana onları qoymaq lazımdır 10 00:00:25,814 --> 00:00:28,930 bir analogiya var, əgər biz cəlb edə bilər. 11 00:00:28,930 --> 00:00:33,600 >> Birincisi, sıfırdan əbədi deyil olan isə (doğru) müqayisə edir. 12 00:00:33,600 --> 00:00:35,390 Bu sonsuz loop zəng edir. 13 00:00:35,390 --> 00:00:38,560 buruq arasında kodu xətləri aşırma çox puzzle ədəd kimi 14 00:00:38,560 --> 00:00:41,190 C daxilində uyğun əbədi blok ki, 15 00:00:41,190 --> 00:00:45,290 üst dəfələrlə icra edəcək alt üzərində və üzərində, 16 00:00:45,290 --> 00:00:46,085 əbədi. 17 00:00:46,085 --> 00:00:48,710 Bütün sonra, siz bizim geri əgər Boolean ifadələr müzakirəsi, 18 00:00:48,710 --> 00:00:51,060 doğru həmişə doğrudur. 19 00:00:51,060 --> 00:00:53,250 Biz edirik Belə ki doğru kimi uzun bir şey 20 00:00:53,250 --> 00:00:58,227 onu true-- bir az silly-- doğru görünür həmişə doğrudur, belə ki, həmişə run lazımdır. 21 00:00:58,227 --> 00:01:00,060 Əbədi run lazımdır və əbədi biz qədər 22 00:01:00,060 --> 00:01:02,900 ilə çıxmaq üçün bir yol tapmaq fasilə şərhdə, yenə, 23 00:01:02,900 --> 00:01:06,350 biz bir az əvvəl gördüm biz keçid haqqında söhbət. 24 00:01:06,350 --> 00:01:08,725 >> Və ya başqa yalnız öldürmək bizim proqram olan gəlmişkən, 25 00:01:08,725 --> 00:01:11,110 Heç bir özünüzü tapmaq əgər sonsuz loop ilə vəziyyət 26 00:01:11,110 --> 00:01:13,484 və dayandırmaq üçün necə bilmirəm çalışan proqram. 27 00:01:13,484 --> 00:01:16,527 Just nəzarət və C hit və ki, sizin üçün proqram öldürmək lazımdır. 28 00:01:16,527 --> 00:01:18,360 Amma bu, təkrar edir sonsuz loop çağırıb. 29 00:01:18,360 --> 00:01:19,818 Əbədi davam edəcək bir loop var. 30 00:01:19,818 --> 00:01:22,570 31 00:01:22,570 --> 00:01:25,610 İndi loops isə deyil həmişə sonsuz, həmçinin 32 00:01:25,610 --> 00:01:27,880 biz Boolean əvəz edə bilməz bir şey ilə ifadə 33 00:01:27,880 --> 00:01:29,867 bir az daha faydalı, yalnız doğru. 34 00:01:29,867 --> 00:01:30,950 Belə ki, burada bir misal var. 35 00:01:30,950 --> 00:01:34,600 Isə bəzi Boolean ifadə və sonra qıvrım aşırma. 36 00:01:34,600 --> 00:01:38,310 Ki, analoji olduqca çox Sıfırdan qədər təkrar. 37 00:01:38,310 --> 00:01:40,700 Ikinci, mən, baxmayaraq ki, fərqi izah edir. 38 00:01:40,700 --> 00:01:44,310 >> , C belə Boolean ifadə əgər isə loop daxilində 39 00:01:44,310 --> 00:01:47,980 əsl, xətləri qiymətləndirir qıvrım aşırma arasında code 40 00:01:47,980 --> 00:01:51,900 üzərində dəfələrlə icra edəcək və artıq Boolean ifadə qədər 41 00:01:51,900 --> 00:01:55,174 yalan üçün qiymətləndirir. 42 00:01:55,174 --> 00:01:57,340 Belə ki, məsələn, siz ola bilər counter bir növ var. 43 00:01:57,340 --> 00:02:01,440 Belə ki, ilin əvvəlində sizə demək Bu loop int x sıfır bərabərdir deyirlər. 44 00:02:01,440 --> 00:02:06,370 X 100 az olsa da, bir neçə ki, qıvrım aşırma daxilində şeyi, 45 00:02:06,370 --> 00:02:10,570 sonra loop sonunda, demək x plus plus, siz x incrementing edirik. 46 00:02:10,570 --> 00:02:13,360 Nəhayət x olacaq 100 və siz 47 00:02:13,360 --> 00:02:15,760 vəziyyəti çünki dayandırmaq x-dən az 100 48 00:02:15,760 --> 00:02:19,416 artıq kimi doğru olacaq Tezliklə x kimi 100 bərabərdir. 49 00:02:19,416 --> 00:02:21,820 100 100 az deyil. 50 00:02:21,820 --> 00:02:25,870 >> İndi bir qədər dolaşıq, davranış danışıq blokunun bərpa edilir. 51 00:02:25,870 --> 00:02:29,110 Bu Belə ki, həqiqətən, ehtiyatlı olun loops istifadə edərək ilk çapqın. 52 00:02:29,110 --> 00:02:33,630 Əsasən, təkrar Not blok qədər 53 00:02:33,630 --> 00:02:35,970 bir şey demək olacaq üzərində və üzərində, 54 00:02:35,970 --> 00:02:40,460 ifadə qədər, Boolean hexagon ifadə doğrudur. 55 00:02:40,460 --> 00:02:43,860 Belə ki, bunu davam edəcək bu doğrudur qədər. 56 00:02:43,860 --> 00:02:48,881 Eyni zamanda, isə loop olacaq Bu yalan qədər bunu davam edir. 57 00:02:48,881 --> 00:02:51,630 Belə ki, onlar olduqca oxşar istəyirik, ancaq yalnız kiçik fərq var 58 00:02:51,630 --> 00:02:55,140 etmək xüsusilə diqqətli olmaq keçid sizin ilk çapqın 59 00:02:55,140 --> 00:02:58,149 c daxil Scratch üçün. 60 00:02:58,149 --> 00:03:00,190 loop növbəti növüdür həqiqətən olduqca oxşar. 61 00:03:00,190 --> 00:03:02,860 Bu do loop isə deyirlər. 62 00:03:02,860 --> 00:03:07,060 Bu loop bütün xətləri icra edəcək bir qıvrım aşırma arasında kodu, 63 00:03:07,060 --> 00:03:09,530 və sonra yoxlayacaq Boolean ifadə. 64 00:03:09,530 --> 00:03:11,700 Boolean ifadə əgər doğru üçün qiymətləndirir, 65 00:03:11,700 --> 00:03:14,340 geri getmək və demək lazımdır üzərində bu proses 66 00:03:14,340 --> 00:03:17,690 və artıq Boolean qədər ifadə yalan üçün qiymətləndirir. 67 00:03:17,690 --> 00:03:23,370 Belə ki, bu loop, bir müddət loop fərqli olaraq, var ən azı bir dəfə run üçün zəmanət. 68 00:03:23,370 --> 00:03:26,080 Bu olduqca faydalı ola bilər. 69 00:03:26,080 --> 00:03:28,011 >> Nəhayət, biz loop üçün var. 70 00:03:28,011 --> 00:03:30,010 Loops üçün növ var syntactically çirkin 71 00:03:30,010 --> 00:03:32,330 və gedən bir çox var burada, belə ki, mənimlə daşıyırlar 72 00:03:32,330 --> 00:03:34,640 biz cəhd və ayrı bu ədəd qırmaq kimi. 73 00:03:34,640 --> 00:03:36,810 Ümumiyyətlə, istifadə halda loop üçün təşəkkür edir 74 00:03:36,810 --> 00:03:40,136 bir şey demək istəyirəm dəfə xüsusi nömrəsi. 75 00:03:40,136 --> 00:03:42,010 Burada bu nümunə, Mən təkrar blok 76 00:03:42,010 --> 00:03:44,010 Not, olan loop üçün analoji 77 00:03:44,010 --> 00:03:47,340 C, bir şey 10 dəfə təkrar. 78 00:03:47,340 --> 00:03:49,250 Və loop üçün orada sol olan 79 00:03:49,250 --> 00:03:51,410 dörd loop ki, eyni şey olardı. 80 00:03:51,410 --> 00:03:52,570 Bu 10 dəfə getmək olardı. 81 00:03:52,570 --> 00:03:56,720 Sıfırdan hesablanması, biz loop hər keçmək arttırmayı. 82 00:03:56,720 --> 00:03:59,220 Və biz bunu saxlamaq i az 10 qədər. 83 00:03:59,220 --> 00:04:00,134 >> Belə ki, nə olur? 84 00:04:00,134 --> 00:04:01,550 Orada kodu bir çox var. 85 00:04:01,550 --> 00:04:03,424 Nin onu qırmaq edək nə addım baş 86 00:04:03,424 --> 00:04:05,684 addım biz loop üçün vasitəsilə qazmaq kimi. 87 00:04:05,684 --> 00:04:08,350 baş ilk şey counter dəyişən mərkəzidir. 88 00:04:08,350 --> 00:04:11,970 Ilk sol Hər şey mötərizə içərisində nöqtəli vergül 89 00:04:11,970 --> 00:04:12,970 icra edilir. 90 00:04:12,970 --> 00:04:15,180 Bu halda, biz i 0 bərabərdir int edib. 91 00:04:15,180 --> 00:04:18,709 I adlı yeni dəyişən elan, dəyişənlərin bir növü tam deyil 92 00:04:18,709 --> 00:04:22,570 və biz daxili dəyər deyərək edirik ki, dəyişən sıfır olacaq. 93 00:04:22,570 --> 00:04:25,480 >> Biz nə ikinci şey biz sonra dərhal qiymətləndirmək 94 00:04:25,480 --> 00:04:26,750 Boolean ifadə. 95 00:04:26,750 --> 00:04:30,100 Boolean ifadə edir iki semicolons orta. 96 00:04:30,100 --> 00:04:31,360 Mən az 10 edir. 97 00:04:31,360 --> 00:04:32,410 Bu doğru, burada doğru? 98 00:04:32,410 --> 00:04:36,030 Biz yalnız i bərabərdir bildirib sıfır, və 0 az 10 99 00:04:36,030 --> 00:04:38,040 və belə ki, vəziyyəti doğrudur və biz olacaq 100 00:04:38,040 --> 00:04:40,640 loop orqanı icra keçin. 101 00:04:40,640 --> 00:04:41,480 Əgər bu yalan idi. 102 00:04:41,480 --> 00:04:46,380 Əgər, misal üçün, mən əvəzinə bildirib i, 0 orada i 15 bərabərdir bildirib bərabərdir 103 00:04:46,380 --> 00:04:47,820 i 15 bərabərdir int. 104 00:04:47,820 --> 00:04:51,450 Well 15 10-dan az olmayan, belə ki, biz loop orqanı daxil heç vaxt 105 00:04:51,450 --> 00:04:55,450 Boolean ifadə çünki saxta olduğu qiymətləndirmək olardı. 106 00:04:55,450 --> 00:04:59,060 >> Biz alt üst keçmək sonra, biz buruq brace bağlanması qovuşana 107 00:04:59,060 --> 00:05:00,830 üçüncü şey olur. 108 00:05:00,830 --> 00:05:03,840 counter dəyişən artırılacağını, daha doğrusu, xətləri 109 00:05:03,840 --> 00:05:07,790 bir şərhdə kodu sonra daxilində ikinci nöqtəli vergül 110 00:05:07,790 --> 00:05:10,500 loops parantez üçün icra edilir. 111 00:05:10,500 --> 00:05:13,250 Belə ki, biz həyata başlamaq i 0 bərabərdir int edib. 112 00:05:13,250 --> 00:05:15,770 Sonra biz və ya deyil Boolean ifadə doğrudur. 113 00:05:15,770 --> 00:05:17,469 0 10 belə ki, doğrudur, azdır. 114 00:05:17,469 --> 00:05:19,510 Beləliklə, biz davam olacaq bədən loop daxil. 115 00:05:19,510 --> 00:05:22,676 Things loop daxilində baş, və biz yekun buruq ki rastlaşsanız 116 00:05:22,676 --> 00:05:25,660 brace, növbəti şey Bunu biz i plus plus demək. 117 00:05:25,660 --> 00:05:28,860 Mən sıfır indi i biridir. 118 00:05:28,860 --> 00:05:33,100 Sonra biz yenə dəyəri yoxlamaq Ortada Boolean ifadə. 119 00:05:33,100 --> 00:05:34,900 Bir az 10 edir. 120 00:05:34,900 --> 00:05:38,325 Beləliklə, biz bu yolu getmək lazımdır təkrar emal. 121 00:05:38,325 --> 00:05:40,590 Biz bağlanması almaq lazımdır daha buruq brace. 122 00:05:40,590 --> 00:05:44,090 Biz i arttırmayı lazımdır 1 2 və 2-dən 3-ə. 123 00:05:44,090 --> 00:05:48,290 Və s və s və s qədər Nəhayət, mən dəyəri 10 olur. 124 00:05:48,290 --> 00:05:49,950 10-dən 10-az? 125 00:05:49,950 --> 00:05:51,200 Yox. 126 00:05:51,200 --> 00:05:53,800 0-dan hesablanması, biz getdi sonra loop 10 tekrarlamalar vasitəsilə. 127 00:05:53,800 --> 00:05:57,204 Biz yalnız 10 dəfə təkrar etdik biz Scratch blok etdi. 128 00:05:57,204 --> 00:05:59,370 Və belə ki, əsasən Dörd loop üçün prosesi. 129 00:05:59,370 --> 00:06:01,630 >> İndi üz alaraq faktiki kodu və onu qoyulması 130 00:06:01,630 --> 00:06:05,120 yalnız bir neçə əsas general hesabatlarında. 131 00:06:05,120 --> 00:06:06,550 Burada nə var. 132 00:06:06,550 --> 00:06:09,290 Bütün hesabatlarının ilk icra başlayın. 133 00:06:09,290 --> 00:06:11,260 Siz daha çox ola bilər. 134 00:06:11,260 --> 00:06:13,440 Sonra Boolean ifadə yoxlanılır. 135 00:06:13,440 --> 00:06:17,850 Ifadə doğru üçün qiymətləndirir varsa, bədən loop bir dəfə icra. 136 00:06:17,850 --> 00:06:21,060 Ifadə qiymətləndirir yalan, biz tamamlayın. 137 00:06:21,060 --> 00:06:23,040 Biz icra etmir bütün loop bədən. 138 00:06:23,040 --> 00:06:25,530 Biz icra sonra bədən loop bir dəfə, 139 00:06:25,530 --> 00:06:29,487 biz sonra nə yoxdur orada artım hissəsidir. 140 00:06:29,487 --> 00:06:31,820 Adətən olacaq i kimi bir şey plus, plus 141 00:06:31,820 --> 00:06:34,510 kimi və ya bir şey ki, bir counter dəyişən düzəliş. 142 00:06:34,510 --> 00:06:37,390 Sonra sonra biz, arttırmayı yenidən ifadə yoxlamaq 143 00:06:37,390 --> 00:06:41,120 və üzərində bu addımları təkrar və ifadə üzərində qədər 144 00:06:41,120 --> 00:06:42,890 artıq doğru. 145 00:06:42,890 --> 00:06:44,469 >> Belə ki, bir loop üçün istifadə halları nə var? 146 00:06:44,469 --> 00:06:46,760 Bir müddət loop zaman istifadə edin Bir loop demək istəyirəm 147 00:06:46,760 --> 00:06:51,200 dəfə naməlum sayı, lakin bəlkə bütün run bilər. 148 00:06:51,200 --> 00:06:53,940 Bir həqiqətən ümumi nümunə loop bir müddət istifadə olunur 149 00:06:53,940 --> 00:06:56,480 Bir oyun üçün nəzarət axını çalıştırmak. 150 00:06:56,480 --> 00:06:59,040 Bilirsiniz bilər necə uzun istifadəçi oynayan olacaq, 151 00:06:59,040 --> 00:07:01,440 ancaq saxlamaq istədiyiniz Eyni şey bunu. 152 00:07:01,440 --> 00:07:04,970 Mövqelərini dəqiqləşdirilməsi board müxtəlif sprites. 153 00:07:04,970 --> 00:07:07,490 Siz şeyi saxlamaq istəyirəm bütün dövrlərdə hərəkət, 154 00:07:07,490 --> 00:07:09,110 ancaq zaman bilmirəm istifadəçi oynayan dayandırmaq gedir 155 00:07:09,110 --> 00:07:10,450 və ya onlar olacaq zaman yaşayır tökülmək üçün. 156 00:07:10,450 --> 00:07:12,741 Belə ki, bir müddət loop həqiqətən kimi bir şey üçün yaxşı. 157 00:07:12,741 --> 00:07:14,130 Ki, bir yaxşı istifadə halda var. 158 00:07:14,130 --> 00:07:16,230 >> Bir do üçün loop isə, bu, olduqca oxşar. 159 00:07:16,230 --> 00:07:19,746 Siz loop naməlum demək istəyirəm dəfə sayı, lakin ən azı bir dəfə. 160 00:07:19,746 --> 00:07:22,370 Siz oyun üçün istifadə edə bilər çox, lakin həqiqətən ümumi istifadə halda 161 00:07:22,370 --> 00:07:24,420 giriş üçün istifadəçi isteyen edilir. 162 00:07:24,420 --> 00:07:28,609 Ümumiyyətlə, siz bir şey demək bilər kimi, Mənə bir müsbət tam vermək, 163 00:07:28,609 --> 00:07:30,650 və bu qoymaq bilər loop isə do daxilində. 164 00:07:30,650 --> 00:07:33,900 Belə ki, həmişə onlara xahiş edəcək ən azı bir dəfə müsbət tam üçün. 165 00:07:33,900 --> 00:07:36,850 Onlar bir müsbət tam vermək əgər, Siz loop həyata qıra bilər. 166 00:07:36,850 --> 00:07:37,599 Siz edilə bilər. 167 00:07:37,599 --> 00:07:39,900 Boolean ifadə ilə nə isə yalan ola bilər. 168 00:07:39,900 --> 00:07:41,137 >> Və onları yenidən xahiş edəcək. 169 00:07:41,137 --> 00:07:44,470 Onlar bir mənfi sayı harada versələr Onlar bəzi söz və ya bir şey yazın 170 00:07:44,470 --> 00:07:46,630 həqiqətən faydalı deyil Siz istifadə edə bilərsiniz 171 00:07:46,630 --> 00:07:49,770 loop geri və bunu isə yenidən və yenidən. 172 00:07:49,770 --> 00:07:52,410 Siz mütləq soruşmaq istəyirəm Onlara bir dəfə bir sıra vermək 173 00:07:52,410 --> 00:07:56,350 lakin necə bir çox dəfə bilmirəm Bundan sonra onlar zərərvericiləri ola bilər. 174 00:07:56,350 --> 00:08:00,540 Və böyük bir istifadə do belə isə giriş üçün istifadəçi isteyen halda. 175 00:08:00,540 --> 00:08:03,060 Və loops üçün istifadə hal adətən zaman 176 00:08:03,060 --> 00:08:06,230 Bir loop demək istəyirəm dəfə bir diskret sayı, 177 00:08:06,230 --> 00:08:08,230 baxmayaraq siz bilər sayını bilmək 178 00:08:08,230 --> 00:08:10,040 an proqramı tərtib edilir. 179 00:08:10,040 --> 00:08:15,510 >> Belə ki, məsələn, bəlkə bir proqram var burada bir sıra üçün istifadəçi təklif. 180 00:08:15,510 --> 00:08:17,660 Onlar 100 daxil edin. 181 00:08:17,660 --> 00:08:20,510 Və sonra loop üçün olacaq bu halda 100 dəfə axır. 182 00:08:20,510 --> 00:08:22,480 Və ya bəlkə onlar daxil Proqram 1000 183 00:08:22,480 --> 00:08:24,570 və sonra loop 1000 dəfə axır. 184 00:08:24,570 --> 00:08:26,987 Bu dəfə müəyyən bir sıra var. 185 00:08:26,987 --> 00:08:28,820 Onlar mütləq deyil nə nömrəsini bilmək 186 00:08:28,820 --> 00:08:31,010 tərtib an proqramdır. 187 00:08:31,010 --> 00:08:35,010 Bu isə loop kimi deyil harada sonsuz ola bilər. 188 00:08:35,010 --> 00:08:37,127 Bu bir sıra olduqca var Yalnız bilmirəm ki. 189 00:08:37,127 --> 00:08:39,210 İndi var, baxmayaraq ki, qeyd bütün bu istifadə halları, 190 00:08:39,210 --> 00:08:41,501 Siz ki, olduqca bilməlidir çox hər hal, 191 00:08:41,501 --> 00:08:44,110 bütün ideya bilər bu loops üç. 192 00:08:44,110 --> 00:08:46,890 Siz loop harada üçün istifadə edə bilərsiniz başqa bir müddət loop istifadə edir. 193 00:08:46,890 --> 00:08:49,860 Siz loop yerdə bir istifadə edə bilərsiniz Bir do isə loop və s istifadə edin. 194 00:08:49,860 --> 00:08:53,680 Bu, bəzən bir az çətin ola bilər belə ümumiyyətlə yaxşı bir təcrübə var 195 00:08:53,680 --> 00:08:55,140 Tipik istifadə halda riayət etmək. 196 00:08:55,140 --> 00:08:57,599 Loop isə do istifadə əgər ən azı, bir dəfə bir şey istədilər. 197 00:08:57,599 --> 00:09:00,514 Siz nə etmək istəyirsinizsə loop üçün istifadə edin bir şey bir neçə dəfə xüsusi nömrəsi. 198 00:09:00,514 --> 00:09:03,730 Var niyə bütün sonra, ki, loops üç müxtəlif növ. 199 00:09:03,730 --> 00:09:06,172 >> Belə ki, onlar istifadə edilə bilər hüququ kontekstində. 200 00:09:06,172 --> 00:09:07,880 Amma ideya bilər Onlara istəyirsinizsə. 201 00:09:07,880 --> 00:09:10,790 Siz isə loops ilə rahat hiss əgər və həmişə loops isə istifadə etmək istəyirik. 202 00:09:10,790 --> 00:09:12,623 Bu bir şeydir ki, Siz nə edə bilərsiniz, bu, baxmayaraq ki, 203 00:09:12,623 --> 00:09:15,590 bir az syntactically ola bilər çətin, harada üçün loop 204 00:09:15,590 --> 00:09:17,850 daha çox sadə olardı. 205 00:09:17,850 --> 00:09:21,100 >> My name Doug Lloyd və bu CS50 edir. 206 00:09:21,100 --> 00:09:22,688