1 00:00:07,370 --> 00:00:09,760 [Powered by Google Translate] تامی MACWILLIAM: بیایید بحث در مورد حلقه ها، یکی از رایج 2 00:00:09,760 --> 00:00:13,380 ساختار برنامه خواهیم در طول CS50 را ببینید. 3 00:00:13,380 --> 00:00:15,570 خواهیم حلقه زمانی که ما می خواهیم به انجام 4 00:00:15,570 --> 00:00:17,200 کار بیش از یک بار. 5 00:00:17,200 --> 00:00:20,700 برای مثال، ما ممکن است بخواهید به چاپ "سلام" 100 بار و یا چاپ 6 00:00:20,700 --> 00:00:22,700 از تمام حروف الفبا. 7 00:00:22,700 --> 00:00:26,030 در هر دو این موارد، ما باید یک چیزی که ما می خواهیم انجام دهیم 8 00:00:26,030 --> 00:00:28,700 چندین بار، چاپ چیزی. 9 00:00:28,700 --> 00:00:31,970 با این حال، آنچه که ما نسخه قابل چاپ کردن در هر زمان می تواند متفاوت باشد. 10 00:00:31,970 --> 00:00:34,530 بنابراین ما می توانیم چیزی کمی متفاوت در هر 11 00:00:34,530 --> 00:00:37,820 تکرار، و یا از طریق اجرا می شود، از حلقه است. 12 00:00:37,820 --> 00:00:41,280 خواهیم سه نوع مختلف از حلقه ها در C نگاه می کنید، در حالی که 13 00:00:41,280 --> 00:00:44,700 حلقه ها، حلقه ها، و در حالی که حلقه ها را انجام دهید. 14 00:00:44,700 --> 00:00:47,850 هر چند این سه نوع از حلقه نحو های مختلف، 15 00:00:47,850 --> 00:00:50,630 ایده پشت آنها یکسان هستند. 16 00:00:50,630 --> 00:00:53,930 ما به برخی از بلوک از کد در داخل آکولاد را تعریف کنیم، 17 00:00:53,930 --> 00:00:57,810 به نام بدنه حلقه، که ما می خواهیم به اعدام 18 00:00:57,810 --> 00:00:59,790 چند بار. 19 00:00:59,790 --> 00:01:03,370 با تغییر مقادیر متغیرهای مورد استفاده در بدن، ما 20 00:01:03,370 --> 00:01:07,570 باعث می شود که حلقه ما چیزی متفاوت در هر زمان آن را اجرا. 21 00:01:07,570 --> 00:01:10,750 با هر حلقه ما می نویسیم، ما نیز باید برای تصمیم گیری نیاز دارند زمانی که 22 00:01:10,750 --> 00:01:12,400 حلقه متوقف خواهد شد در حال اجرا است. 23 00:01:12,400 --> 00:01:15,650 اگر ما این کار را انجام، و سپس کامپیوتر قابل اعتماد ما را ادامه خواهد داد 24 00:01:15,650 --> 00:01:19,040 برای اجرای این حلقه تا زمانی که برنامه ما را می کشند. 25 00:01:19,040 --> 00:01:22,490 در ابتدا، ما می تواند از تکرار N بار استفاده کنید 26 00:01:22,490 --> 00:01:24,600 مسدود کردن یک حلقه ایجاد کنید. 27 00:01:24,600 --> 00:01:28,200 همه قطعات در داخل یک بلوک که گفت تکرار 10 28 00:01:28,200 --> 00:01:30,130 اجرا می شود 10 برابر شده است. 29 00:01:30,130 --> 00:01:34,160 و پس از آن، ما می خواهم حرکت بر روی قطعه پس از آن حلقه شده است. 30 00:01:34,160 --> 00:01:38,140 بنابراین شرط توقف ما به سادگی، این بلوک بوده است 31 00:01:38,140 --> 00:01:39,830 اجرای 10 بار. 32 00:01:39,830 --> 00:01:43,900 بنابراین اجازه دهید تمدد اعصاب در C. در ابتدا برای اطمینان از 33 00:01:43,900 --> 00:01:46,920 که قطعات در داخل بلوک تکرار اجرا 34 00:01:46,920 --> 00:01:51,180 دقیقا 10 بار، ابتدا نیاز به پیگیری هر یک از 35 00:01:51,180 --> 00:01:53,750 اجرای بلوک تکرار. 36 00:01:53,750 --> 00:01:56,790 برای پیگیری از چند بار بدن حلقه ما بوده است 37 00:01:56,790 --> 00:02:00,360 اعدام، اجازه ایجاد یک متغیر به نام من به. 38 00:02:00,360 --> 00:02:03,400 خواهیم کرد من شروع صفر، پس از حلقه ما 39 00:02:03,400 --> 00:02:04,650 نشده است اجرا نشده است. 40 00:02:10,009 --> 00:02:10,949 خوب 41 00:02:10,949 --> 00:02:15,560 در حال حاضر ما باید از کلمه کلیدی حالی که برای شروع کردن حلقه ما استفاده کنید. 42 00:02:20,100 --> 00:02:24,180 در حال حاضر ما نیاز به کشف کردن که حلقه ما متوقف خواهد شد، اما 43 00:02:24,180 --> 00:02:26,730 اجازه ترک این در حال حاضر و پس از آن دوباره به آن. 44 00:02:30,970 --> 00:02:32,150 بسیار خوب. 45 00:02:32,150 --> 00:02:35,260 داخل حلقه ما، اجازه دهید فقط به چاپ یک پیام، مانند 46 00:02:35,260 --> 00:02:38,535 "سلام." ما می توانیم از تابع printf برای این استفاده کنید. 47 00:02:48,400 --> 00:02:49,230 بسیار خوب. 48 00:02:49,230 --> 00:02:54,210 بنابراین در حال حاضر ما باید به سابقه است که تکرار بدنه حلقه 49 00:02:54,210 --> 00:02:55,750 اعدام شده است. 50 00:02:55,750 --> 00:03:00,320 ما می توانیم با اضافه کردن 1 و یا افزایش، مبارزه با ما 51 00:03:00,320 --> 00:03:01,740 متغیر، من. 52 00:03:01,740 --> 00:03:09,180 برای انجام این کار، ما می توانیم بگوییم من برابر است با به علاوه 1 یا بیشتر 53 00:03:09,180 --> 00:03:16,520 به سادگی، به علاوه به علاوه. 54 00:03:16,520 --> 00:03:17,320 بزرگ است. 55 00:03:17,320 --> 00:03:21,810 بنابراین در حال حاضر ما می توانیم ببینیم که هر یک از حلقه ما این است که اجرا شود، ما 56 00:03:21,810 --> 00:03:24,500 متغیر شمارنده بالا می رود به یک. 57 00:03:24,500 --> 00:03:29,410 بنابراین ما می دانیم که دقیقا چه بسیاری تکرار کرده ایم اجرا تا کنون. 58 00:03:29,410 --> 00:03:31,630 بعد از یک تکرار از حلقه، ارزش ما 59 00:03:31,630 --> 00:03:34,270 از من خواهد بود 1. 60 00:03:34,270 --> 00:03:37,460 پس از دو تکرار، من خواهد بود 2. 61 00:03:37,460 --> 00:03:42,640 و بعد از 10 تکرار، من خواهد بود 10. 62 00:03:42,640 --> 00:03:46,780 بنابراین، اگر ما می خواهیم برای اجرای این حلقه دقیقا 10 بار، و سپس 63 00:03:46,780 --> 00:03:49,240 این زمانی است که ما می خواهیم برای متوقف کردن. 64 00:03:49,240 --> 00:03:53,860 بنابراین ما می خواهیم برای اجرای این حلقه در حالی که من این است که کمتر از 10 است، و 65 00:03:53,860 --> 00:03:57,630 که دقیقا همان چیزی است که خواهیم نوشت، در حالی که من 66 00:03:57,630 --> 00:04:02,450 کمتر از 10 می باشد. 67 00:04:02,450 --> 00:04:06,380 این وضعیت به نظر می رسد درست مثل شرایط ما در صورت استفاده 68 00:04:06,380 --> 00:04:07,830 بلوک دیگری است. 69 00:04:07,830 --> 00:04:11,690 پس از بدنه حلقه اجرا شده است، برنامه ما 70 00:04:11,690 --> 00:04:14,690 بازگشت پرش به بالا به وضعیت حلقه. 71 00:04:14,690 --> 00:04:17,290 اگر شرط درست باشد، پس بدن 72 00:04:17,290 --> 00:04:18,990 حلقه دوباره اجرا خواهد شد. 73 00:04:18,990 --> 00:04:22,190 اگر شرایط دیگر درست است، و سپس حلقه ما نخواهد بود 74 00:04:22,190 --> 00:04:25,700 دیگر اجرا خواهد شد و حرکت بر روی خط بعدی کد 75 00:04:25,700 --> 00:04:27,876 در زیر حلقه ما. 76 00:04:27,876 --> 00:04:28,550 بسیار خوب. 77 00:04:28,550 --> 00:04:30,740 پس اجازه دهید نگاهی در نوع دوم از 78 00:04:30,740 --> 00:04:33,000 حلقه، حلقه for. 79 00:04:33,000 --> 00:04:37,310 بعد از کلید واژه ها در حالی که، در پرانتز، ما تا به حال یک چیز است، 80 00:04:37,310 --> 00:04:39,840 بیماری است که نیاز به واقعی برای 81 00:04:39,840 --> 00:04:42,010 بدنه حلقه اجرا می شود. 82 00:04:42,010 --> 00:04:45,440 این بدان معناست که ما تا به حال برای ایجاد متغیر مبارزه ما در خارج 83 00:04:45,440 --> 00:04:48,760 از حلقه و به یاد داشته باشید تا آن را افزایش در برخی از نقطه 84 00:04:48,760 --> 00:04:51,050 در داخل حلقه است. 85 00:04:51,050 --> 00:04:54,320 هدر برای ما حلقه for، از سوی دیگر، دارای سه 86 00:04:54,320 --> 00:04:58,510 بخش، هر کدام از آنها خواهد شد با یک نقطه و ویرگول از هم جدا شده است. 87 00:04:58,510 --> 00:05:01,950 در سوم ما، ما می توانیم هر شمارنده و یاور اعلام 88 00:05:01,950 --> 00:05:05,000 متغیرهای ما می خواهم به در حلقه ما استفاده کنید. 89 00:05:05,000 --> 00:05:07,350 در عمل، این می تواند واقعا مفید است. 90 00:05:07,350 --> 00:05:10,590 ما واقعا که متغیر، من، بعد در حالی که ما نیاز ندارد 91 00:05:10,590 --> 00:05:13,650 حلقه اجرا شده است، بنابراین ما واقعا نمی باید آن را اعلام 92 00:05:13,650 --> 00:05:15,810 در خارج از حلقه است. 93 00:05:15,810 --> 00:05:19,080 سوم دوم خواهد بود که شرایط است که باید درست باشد 94 00:05:19,080 --> 00:05:21,850 در بدن به اعدام می شود دوباره، درست مانند 95 00:05:21,850 --> 00:05:23,330 در حالی که حلقه ما. 96 00:05:23,330 --> 00:05:26,350 در آخر ما، ما می توانیم یک بیانیه خواهد بود که اجرا شود 97 00:05:26,350 --> 00:05:30,270 اعدام بعد از هر تکرار از حلقه، بنابراین ما لازم نیست 98 00:05:30,270 --> 00:05:32,710 ساخت آن را به بدن حلقه. 99 00:05:32,710 --> 00:05:38,390 پس از ارسال نامه برای حلقه است که از 5 تا 1 شمارش کنیم. 100 00:05:38,390 --> 00:05:41,790 ما با کلمه کلیدی برای شروع خواهیم کرد. 101 00:05:41,790 --> 00:05:44,680 ما می توانیم یک متغیر شمارنده ایجاد کنیم که 102 00:05:44,680 --> 00:05:47,840 تعیین این زمان تا 5 از آنجایی که ما در حال شمارش کردن، 103 00:05:47,840 --> 00:05:50,110 توسط یک نقطه ویرگول. 104 00:05:50,110 --> 00:05:53,660 بعد شرایط ما، که ما آن را خواهیم دوباره به است. 105 00:05:53,660 --> 00:05:57,540 سوم، ما می خواهم متغیر مبارزه ما را به واحد کم پس از 106 00:05:57,540 --> 00:05:59,620 هر تکرار از حلقه. 107 00:05:59,620 --> 00:06:04,740 بنابراین به جای گفتن به علاوه به علاوه، ما من منهای منفی می گویند. 108 00:06:04,740 --> 00:06:05,300 بسیار خوب. 109 00:06:05,300 --> 00:06:09,490 بنابراین ما می خواهیم بدن حلقه به اجرا در حالی که من هنوز هم 110 00:06:09,490 --> 00:06:11,960 بزرگتر از 0. 111 00:06:11,960 --> 00:06:16,160 در بدنه حلقه، اجازه چاپ از ارزش من. 112 00:06:16,160 --> 00:06:20,480 برای انجام این کار، ما می خواهیم از تابع printf، با استفاده از D٪ 113 00:06:20,480 --> 00:06:21,650 حفره یا سوراخ. 114 00:06:21,650 --> 00:06:24,820 به یاد داشته باشید، که حفره یا سوراخ خواهد شد با جایگزین 115 00:06:24,820 --> 00:06:27,040 ارزش از من. 116 00:06:27,040 --> 00:06:32,060 در نهایت، اجازه دهید اضافه کردن یک بیانیه پس از ما برای حلقه. 117 00:06:32,060 --> 00:06:35,850 هنگامی که ما برای اجرای این حلقه، من شروع خواهد شد در 5، 118 00:06:35,850 --> 00:06:38,070 تا 5 چاپ خواهد شد. 119 00:06:38,070 --> 00:06:42,000 هنگامی که من به 0 می شود، به شرط تداوم، من 120 00:06:42,000 --> 00:06:44,450 بزرگتر از 0 باشد، دیگر برگزار خواهد شد. 121 00:06:44,450 --> 00:06:47,330 بنابراین حلقه ما متوقف خواهد شد اجرا می کنیم و مشاهده می کنید 122 00:06:47,330 --> 00:06:49,850 بیانیه پس از حلقه. 123 00:06:49,850 --> 00:06:51,340 پس از اجرا این کد به شما اجازه می دهد تا. 124 00:06:51,340 --> 00:06:52,700 اول، ما کامپایل 125 00:06:52,700 --> 00:06:56,460 countdown.c با شمارش معکوس. 126 00:06:56,460 --> 00:06:59,320 در حال حاضر، ما می توانیم این کد را با / شمارش معکوس اجرا کنید. 127 00:07:02,340 --> 00:07:06,040 در هر دو حلقه و در حالی که حلقه ها، ادامه ما 128 00:07:06,040 --> 00:07:09,010 شرایط خواهد شد قبل از بدن بررسی می شود 129 00:07:09,010 --> 00:07:10,960 از حلقه اجرا می شود. 130 00:07:10,960 --> 00:07:13,840 این بدان معنی است که اگر وضعیت ما این است که در ابتدا نیست 131 00:07:13,840 --> 00:07:18,100 درست است، پس از آن بدن از حلقه ما خواهد شد هرگز اجرا شود. 132 00:07:18,100 --> 00:07:22,060 پس از آن گاهی اوقات مفید است برای بررسی شرایط پس از 133 00:07:22,060 --> 00:07:25,150 بدن از حلقه و نه قبل از آن. 134 00:07:25,150 --> 00:07:28,270 بنابراین ارسال یک حلقه به شما اجازه می دهد تا کاربر را برای یک شماره بی درنگ 135 00:07:28,270 --> 00:07:30,990 تا زمانی که یک عدد مثبت است عرضه می شود. 136 00:07:30,990 --> 00:07:34,740 اگر ورودی کاربر یک عدد منفی، ما می خواهم به آنها را بپرسید 137 00:07:34,740 --> 00:07:36,260 برای یک شماره دیگر. 138 00:07:36,260 --> 00:07:38,940 بنابراین ما می خواهید سریع به داخل 139 00:07:38,940 --> 00:07:41,050 بدن در خارج از حلقه است. 140 00:07:41,050 --> 00:07:44,730 با این حال، هنگامی که حلقه برای اولین بار اجرا شود، کاربر 141 00:07:44,730 --> 00:07:46,750 داده است که ما از شماره است. 142 00:07:46,750 --> 00:07:49,640 پس از آن معنی ندارد برای بررسی اگر آن را مثبت. 143 00:07:49,640 --> 00:07:54,020 در عوض، ما می خواهید از این شماره به بعد بدن را بررسی کنید 144 00:07:54,020 --> 00:07:55,720 حلقه اجرا می شود. 145 00:07:55,720 --> 00:08:00,310 ما می توانیم این کار را با انجام در حالی که حلقه را انجام دهد. 146 00:08:00,310 --> 00:08:03,560 اول، ما به یک متغیر، ایجاد، N است که برگزار خواهد شد 147 00:08:03,560 --> 00:08:05,230 ورودی کاربر است. 148 00:08:05,230 --> 00:08:09,960 در حال حاضر ما باید از کلمه کلیدی کنید، آکولاد استفاده از آن 149 00:08:09,960 --> 00:08:12,930 شروع خواهد شد بدن از حلقه ما. 150 00:08:12,930 --> 00:08:16,230 در بدن ما می تواند کاربر را برای یک شماره با بی درنگ 151 00:08:16,230 --> 00:08:18,480 GetInt تابع. 152 00:08:18,480 --> 00:08:23,230 در حال حاضر، ما می خواهید بدن از این حلقه برای اجرای دوباره 153 00:08:23,230 --> 00:08:28,370 کاربر یک عدد منفی را تایپ کنیم، می گویند در حالی که N 154 00:08:28,370 --> 00:08:30,420 کمتر از 0. 155 00:08:30,420 --> 00:08:33,140 توجه داشته باشید که نقطه و ویرگول در اینجا پس از بیانیه در حالی که. 156 00:08:38,909 --> 00:08:40,679 پس از اجرا این کد به شما اجازه می دهد تا. 157 00:08:40,679 --> 00:08:44,780 اول، ما این کار را با مثبت کامپایل. 158 00:08:44,780 --> 00:08:49,340 در حال حاضر ما می توانیم با برنامه اجرا شود. / مثبت است. 159 00:08:49,340 --> 00:08:52,660 اگر ما به این برنامه یک عدد باشد، منفی مانند منفی 160 00:08:52,660 --> 00:08:56,560 4، پس از آن ما می شود دوباره برای یک تعداد از را برانگیخت 161 00:08:56,560 --> 00:09:00,490 شرایط انجام ما در حالی که حلقه درست بود. 162 00:09:00,490 --> 00:09:04,690 هنگامی که یک عدد مثبت ما را، مثل 8، پس از آن 163 00:09:04,690 --> 00:09:08,560 شرایط انجام ما در حالی که حلقه دیگر درست خواهد بود. 164 00:09:08,560 --> 00:09:12,080 پس حلقه دوباره اجرا نخواهد شد. 165 00:09:12,080 --> 00:09:15,290 و آن را برای سه نوع از حلقه خواهیم در C. استفاده از 166 00:09:15,290 --> 00:09:18,840 نام تامی است، و این CS50.