Tip:
Highlight text to annotate it
X
[Powered by Google Translate] TOMMY MacWilliam: Давайце пагаворым аб завесах, адным з найбольш распаўсюджаных
канструкцыі праграмавання мы ўбачым ўсёй CS50.
Мы будзем выкарыстоўваць завесы, калі мы хочам выканаць
Задача больш чым адзін раз.
Напрыклад, мы маглі б надрукаваць "Прывітанне" у 100 разоў або друк
усе літары алфавіту.
У абодвух гэтых выпадках, мы маем адну рэч, якую мы хочам зрабіць
некалькі разоў, надрукаваць што-небудзь.
Аднак тое, што мы друкуем кожны раз можа мяняцца.
Такім чынам, мы можам зрабіць нешта трохі адрозніваецца па кожнай
ітэрацыі, або запусціць да канца, цыклу.
Мы ўбачым тры розных тыпу цыклаў ў C, у той час як
цыклы, цыклы, і рабіць, пакуль завесы.
Хоць гэтыя тры тыпу завесы маюць розны сінтаксіс,
ідэі, якія стаяць за імі тое ж самае.
Мы вызначым некаторы блок кода ў фігурныя дужкі,
называецца целам цыклу, што мы хочам быць выкананы
некаторы колькасць разоў.
Пры змене значэнняў зменных, якія выкарыстоўваюцца ў целе, мы
можа зрабіць наш цыкл зрабіць нешта іншае кожны раз, калі ён бегчы.
Пры любым цыкле мы пішам, мы таксама павінны вырашыць, калі
цыкл будзе спынены.
Калі мы не зробім гэтага, то наш верны кампутар будзе працягваць
для выканання гэтага цыклу, пакуль мы забіваем праграму.
У Scratch, мы маглі б выкарыстоўваць паўтор п раз
заблакаваць для стварэння цыкла.
Усе часткі ўнутры блока, сказаў Паўтарыць 10
будзе працаваць у 10 разоў.
І потым, мы пераходзім да часткі пасля гэтага цыклу.
Такім чынам, наша прыпынак стан было проста, гэты блок быў
выканаць 10 разоў.
Так што давайце ўзнавіць гэта ў C. Для таго, каб забяспечыць драпін
што кавалкі ў рамках паўторнага блока выконваюцца
роўна 10 раз, Scratch неабходна сачыць за кожным
выкананне паўторнага блока.
Каб адсочваць, колькі раз нашы цела цыклу была
выконваецца, давайце створым зменную я.
Мы пачнем я з нуля, так як наш цыкл
не быў запушчаны яшчэ.
Добра
Цяпер мы будзем выкарыстоўваць у той час як ключавое слова, каб пачаць наш цыкл.
Цяпер мы павінны высветліць, калі наш цыкл будзе спыніць, але
Пакінем гэта на дадзены момант, а затым вярнуцца да яго.
Добра.
Унутры нашага цыклу, давайце проста надрукаваць паведамленне з, як
"Прывітанне". Мы можам выкарыстоўваць Е функцыя для гэтага.
Добра.
Так што цяпер мы будзем запісваць, што ітэрацыі цыклу целе
быў пакараны.
Мы можам зрабіць гэта шляхам дадання 1, або павялічваючы наш лічыльнік
зменных, я.
Каб зрабіць гэта, мы можам сказаць, што я роўна я плюс 1 або больш
Проста, я плюс плюс.
Вялікі.
Такім чынам, зараз мы можам бачыць, што кожны раз наш цыкл выконваецца, наш
зменная лічыльніка павялічваецца на адзін.
Такім чынам, мы ведаем дакладна, колькі ітэрацый мы запускаем да гэтага часу.
Пасля адной ітэрацыі цыклу, нашы каштоўнасці
аб я буду 1.
Пасля двух ітэрацый, я буду 2.
А пасля 10 ітэрацый, я буду 10.
Такім чынам, калі мы хочам запусціць гэты цыкл роўна 10 раз, затым
гэта калі мы хочам спыніць.
Такім чынам, мы хочам запусціць гэты цыкл, пакуль я менш, чым 10, і
гэта дакладна, што мы будзем пісаць, а я
менш, чым 10.
Гэта ўмова выглядае гэтак жа, як і ўмовы, якія мы выкарыстоўвалі ў выпадку
іншым блоках.
Пасля таго як цела наша цыкл быў выкананы, наша праграма
будзе скакаць назад да стану завес.
Калі ўмова праўдзіва, то цела
цыкл будзе запушчаны зноў.
Калі ўмова не дакладна, то наш цыкл не будзе
больш бегчы і перайсці да наступнай радку кода
Пад нашым цыклу.
Добра.
Такім чынам, давайце зірнем на другога тыпу
пятля, пятля для.
Далей у той час як ключавое слова ў дужках, у нас была адна рэч,
ўмова, што неабходна, каб быць праўдай для
Цела цыклу будзе выконвацца.
Гэта азначае, што мы павінны былі стварыць нашу зменную лічыльніка за межы
цыкла і памятаць, каб павялічыць яе ў некаторай кропцы
Усярэдзіне цыклу.
Загаловак для нашага цыклу, з другога боку, мае тры
частак, кожная з якіх будзе падзяляюцца кропкай з коскі.
У нашай першай трэці, мы можам аб'явіць любое сустрэчную або дапаможныя
зменных, якія мы хацелі б выкарыстоўваць яе ў нашым цыкле.
На практыцы гэта можа быць вельмі карысным.
Мы сапраўды не патрэбна гэтая пераменная, я, у той час як пасля нашай
цыкл скончыўся, так што мы сапраўды не павінны аб'явіць яго
па-за цыклу.
Другая траціну будзе ўмова, якое павінна выконвацца
для цела, каб быць выканана зноў, як
У наш час цыклу.
У нашай апошняй трэці, мы можам запусціць заяву, якое будзе
выконваецца пасля кожнай ітэрацыі цыклу, таму ў нас няма
ўбудоўваць яго ў цела цыклу.
Так што давайце пісаць цыкл, які адлічвае ад 5 да 1.
Мы пачнем з для ключавога слова.
Мы можам стварыць зменную лічыльніка першы, які мы
усталяваны ў 5, так як на гэты раз мы разлічваем ўніз,
варта кропка з коскі.
Наступнае наша ўмова, якое мы будзем вяртацца.
Па-трэцяе, мы хацелі б памяншаць нашу зменную лічыльніка пасля
кожнай ітэрацыі цыклу.
Такім чынам, замест таго, каб гаварыць я плюс плюс, мы сказаць, што я мінус мінус.
Добра.
Таму мы хочам, цела цыклу для запуску ў той час як я ўсё яшчэ
больш 0.
У целе цыклу, давайце раздрукаваць значэнне я.
Для гэтага мы будзем выкарыстоўваць Е функцыя, з дапамогай% D
запаўняльніка.
Памятаеце, што запаўняльнік будзе заменены
Значэнне я.
Нарэшце, давайце дадамо заяву пасля нашага цыклу.
Калі мы запускаем гэты цыкл, я буду пачынаць на 5,
так што 5 будзе надрукаваны.
Як толькі я дабіраецца да 0, працяг стане, я гэта
больш 0, больш не будуць выкананы.
Такім чынам, наш цыкл будзе спыніць выкананне, і мы ўбачым,
заяву пасля цыклу.
Так давайце запусцім гэты код.
Па-першае, мы будзем кампіляваць
countdown.c зрабіць з адваротным адлікам.
Цяпер мы можам запусціць гэты код з. / Адлік.
У той час як абодва завесы і завесы, наша працяг
ўмова будзе правярацца, перш чым цела
з цыклу.
Гэта азначае, што, калі нашы ўмовы першапачаткова не
праўда, то цела нашага цыклу ніколі не будзе выконвацца.
Так што часам карысна правяраць стан пасля
Цела цыклу, а не перад ім.
Так што давайце напісаць цыкл, каб запытваць у карыстальніка лік
да станоўчага ліку у камплект пастаўкі.
Калі карыстач уводзіць адмоўны лік, мы хочам, каб спытаць іх
на іншы нумар.
Так што нам трэба гэта запрашэнне, каб быць унутры
цела з пятлёй.
Аднак, калі цыкл запускаецца ў першы раз, карыстальнік
не даў нам нумар яшчэ няма.
Так што гэта не мае сэнсу, каб праверыць, калі ён станоўчы.
Замест гэтага, мы хочам, каб праверыць нумар пасля цела
цыкл выконваецца.
Мы можам зрабіць гэта з рабіць падчас цыклу.
Па-першае, мы створым зменную п, які будзе ўтрымліваць
карыстальнікаў ўваход.
Цяпер мы будзем выкарыстоўваць на ключавыя словы, а затым фігурныя дужкі, што
будзе пачаць целе нашага цыклу.
У целе, мы можам прапанаваць карыстачу шэраг з
GetInt функцыі.
Цяпер мы хочам цела гэтага цыклу выканаць зноў, калі
карыстач уводзіць адмоўны лік, таму мы будзем казаць у той час як п
менш 0.
Звярніце ўвагу на кропку з коскай тут пасля таго, як пры заяве.
Так давайце запусцім гэты код.
Па-першае, мы будзем збіраць з гэтым зрабіць станоўчым.
Цяпер мы можам запусціць праграму камандай. / Станоўчы.
Калі мы дамо гэтую праграму адмоўнага ліку, як і адмоўныя
4, то будзе прапанавана зноў побач з
стан нашай рабіць падчас цыклу было праўдай.
Як толькі мы даем станоўчае лік, як і 8, то
стан нашай рабіць падчас цыклу больш не будзе праўдай.
Такім чынам, цыкл не будзе выкананы яшчэ раз.
І вось менавіта для трох тыпаў завес мы будзем выкарыстоўваць у C.
Мяне клічуць Томі, і гэта CS50.