ДАГ Lloyd: Ладно, давайте поговорим о петель. Так петли круто потому что они позволяют вашу программу для выполнения строк кода снова и снова и снова. Неоднократно, без необходимости копировать и вставьте или иным повторять их. Есть три основных виды петель вы увидите. Вы, вероятно, есть повод использовать каждый, как вы прогресс через CS50. Некоторые из этих петель довольно вам знакомы с нуля, так снова, как мы сделали с условных, мы поместим их бок о бок если есть аналогия, мы можем рисовать. Во-первых это навсегда от царапин, что сопоставимо с в то время как (правда). Это то, что мы называем бесконечный цикл. Линии кода между фигурными скобки, так же, как кусочки головоломки, что подходит внутри C из вечно блокировать, будет выполнять неоднократно сверху вниз, снова и снова и снова, навсегда. В конце концов, если вы Вспомните обсуждение логических выражений, правда всегда верно. Так что, если мы делаем то так долго, как верно в true-- это кажется немного silly-- правда всегда верно, так что всегда буду работать. Это будет работать вечно и не во веки веков, пока мы найти способ вырваться из него с заявление перерыв, который снова, мы видели некоторое время назад мы говорили о переходе. Или иначе просто убить нашего Программа, которая кстати, если вы когда-нибудь окажетесь в Ситуация с бесконечным циклом и вы не знаете, как остановить Ваша программа работает с. Просто нажмите контроль и C и что убьет вашу программу для вас. Но это, опять же, называется бесконечный цикл. Это цикл, который будет работать вечно. Теперь, в то время как петли не всегда бесконечно, потому что также мы можем заменить логическое Выражение с чем-то немного более полезным, чем просто так. Так вот еще один пример. В то время как некоторые Логическое Выражение, а затем фигурные скобки. Это довольно много, аналогично не повторять до тех пор, с нуля. Хотя в секунду, я буду объяснить разницу. Таким образом, в C, если логическое выражение внутри то время цикла истинно, линий Код между фигурными скобками будет выполнять неоднократно снова и снова и не закончена, пока логическое выражение оценивается как ложное. Так, например, вы могли бы есть какой-то счетчик. Так сказать, вам в начале этот цикл сказать INT х равна нулю. В то время как х меньше 100, сделать пару вещи внутри, что фигурные скобки, то в конце вашего цикла, вы говорите, х плюс, плюс, вы увеличивая х. В конце концов х получите 100 и вы остановиться, потому что в состоянии х меньше 100 больше не будет верно, как только х равен 100. 100 составляет не менее 100. Теперь несколько смутно, поведение царапины блока вспять. Так быть очень осторожны, если это Ваш первый набег в использовании петли. В основном, повтор до блока нуля будет повторить то снова и снова и снова, до выражения, логическое выражение в шестиугольник верно. Так что будем продолжать делать это, пока это не правда. Между тем, это время цикл продолжать делать это до тех пор, пока ложь. Так что они очень похожи, но есть то, что небольшое различие только быть осторожным, особенно, как вы сделаете Ваш первый набег от перехода поцарапать в с. Следующий вид петли на самом деле очень похожи. Это называется делать во время цикла. Этот цикл будет выполнять все линии кода между фигурными скобками один раз, а затем она будет проверять логическое выражение. Если логическое выражение истинно, это будет вернуться назад и повторить что процесс снова и снова не раз, пока на логическое выражение ложь. Так что это петля, в отличие от время цикла, является гарантирует выполнение, по крайней мере один раз. Это может быть очень полезно. Наконец, у нас есть цикл. Для петель являются своего рода синтаксически непривлекательными и там много всего происходит здесь, так что потерпите со мной как мы пытаемся сломать и эти куски друг от друга. Вообще, использование дело А для вас петли хочу повторить что-то определенное количество раз. В этом примере здесь, У меня есть блок повтора с нуля, что аналогично для цикла в С, повторяя что-то в 10 раз. И для петли на Слева, что состоит из четырех цикл, который будет делать то же самое. Это будет идти в 10 раз. Подсчет от нуля, мы увеличить каждом проходе цикла. И мы продолжаем делать что пока я не меньше, чем 10. Так что же происходит? Там целая много кода там. Давайте разбить его что происходит шаг за шагом, как мы копаем через цикл. Первое, что произошло, переменная счетчика центр. Все слева, что сначала Точка с запятой в скобках выполняется. В этом случае, мы говоря INT я равна 0. Объявление новую переменную с именем I, что переменных типа целое и мы говорим значение внутри что переменная будет равна нулю. Вторая вещь, что мы делаем, мы сразу же оценить логическое выражение. Логическое выражение в средний из двух точкой с запятой. Я меньше, чем 10. Это правда здесь, верно? Мы только что сказали, я равна нулю, и так 0, составляет менее 10, и так что условие Правда, и теперь мы будем перейти к выполнить тело цикла. Если бы это было ложным. Если, например, я сказал, а не я равна 0 там я сказал, что я равен 15, Int я равна 15. Ну 15 это не меньше, чем 10, таким образом, мы никогда бы не войти в тело цикла потому что логическое выражение было бы оценить как ложное. После того как мы пройти через сверху донизу, мы сталкиваемся, что закрытие фигурную скобку, третий вещь. Переменная счетчика увеличивается или, скорее, линии кода заявления после второй запятой внутри из для петель скобках выполняется. Таким образом, мы начнем с говоря INT я равна 0. Затем мы проверяем, является ли логическое выражение истинно. 0 меньше, 10 так, что это правда. Итак, мы собираемся, чтобы продолжить в тело цикла. Вещи произойдет внутри цикла, и когда мы сталкиваемся с, что закрывающая фигурная скобка, следующая вещь, которую мы сделать, мы говорим я плюс, плюс. Я была нулевой теперь я одна. Затем мы снова проверьте значение логическое выражение в середине. Одним из них является менее 10. Таким образом, мы пройти через это обрабатывать снова и снова. Мы доберемся до закрытия фигурная скобка снова. Мы увеличиваем я от От 1 до 2 и от 2 до 3. И так далее, и так далее, и так далее, пока В конце концов я в значение становится 10. Есть 10 менее 10? Нет. Подсчет от 0, мы пошли через 10 итераций цикла. Мы повторяли 10 раз, только как мы это делали в царапинам блока. И так, что в основном то Процесс четыре цикла. Теперь забирая фактический код и положить его всего несколько основных общих заявлений. Вот что происходит. Все заявления в начать сначала выполняются. Вы можете иметь более одного. Затем логическое выражение проверяется. Если выражение истинно, выполнить организму рамочную один раз. Если выражение ложь, мы сделали. Мы не выполните тело цикла вообще. После того как мы казнили Тело цикл раз, Затем мы делаем то, что в часть приращения там. Который, как правило, будет что-то вроде I плюс, плюс или что-то подобное, что изменяет переменную счетчик. Затем, после того как мы увеличиваем, мы проверить выражение снова и повторить эти шаги снова и снова и не закончена, пока выражение больше не верно. Итак, какие варианты использования для цикла? Используйте использовании петлю, когда Вы хотите, чтобы повторить цикл неизвестное количество времени, но это, возможно, не может работать все. Действительно распространенным примером какое-то время цикла используются это запустить поток управления для игры. Вы не могли бы знать, как долго Пользователь будет играть, но вы хотите сохранить делать то же самое. Обновление позиции различные спрайты на доске. Вы хотите, чтобы держать вещи движется во все времена, но вы не знаете, когда пользователь собирается прекратить играть или когда они собираются бежать из жизни. Таким образом, в то время как цикл действительно хорошо что-то вроде этого. Это хороший прецедент. Для дел, а петли, это довольно похожи. Вы хотите, чтобы цикл повторить неизвестный количество раз, но по крайней мере один раз. Вы можете использовать это для игры тоже, но действительно общий случай использования побуждает пользователя для входа. Как правило, вы могли бы сказать что-то как, дайте мне положительное целое число, и вы, возможно, положить, что внутри делать во время цикла. Так что всегда будет просить их хотя бы один раз в течение целого положительного. Если они дают вам целое положительное число, Вы могли бы вырваться из петли. Вы могли бы сделать. Логическое выражение в сделай, а может быть ложным. И вы не будете просить их снова. Если они дают вам номер, где отрицательное они типа какое-то слово или что-нибудь на самом деле не полезно Вы, вы, возможно, использовать делать, а петля, чтобы вернуться и сделать снова и снова, и снова. Вы, безусловно, хочу спросить их, чтобы дать вам несколько раз, но вы не знаете, сколько раз После этого они могут быть вредители. И так делать, пока это большое использование чехол для запроса пользователя для ввода. И для петель использовать Дело, как правило, когда Вы хотите, чтобы повторить цикл дискретный количество раз, если вы не могли бы знаю, сколько раз момент компиляции программы. Так, например, может быть, у вас есть программа где вы подсказать пользователю для ряда. И они входят 100. И тогда ваш цикл будет в этом случае работать в 100 раз. Или, может быть, они входят 1000 в программе а затем запустить петлю 1000 раз. Это определенное количество раз. Они не обязательно знаю, что это число это программа момент составляется. Это не то, какое-то время цикл где он может быть бесконечным. Это довольно ряда что вы просто не знаю. Теперь, хотя я изложенные все эти прецеденты, Вы должны знать, что в значительной много каждый обстоятельство, Вы можете поменять все три из этих петель. Вы можете использовать цикл, где вы в противном случае использовать время цикла. Вы можете использовать цикл где это Вы бы использовать делать во время цикла и так далее. Это может быть немного сложнее иногда, так вообще это хорошая практика придерживаться типичного использования. Используйте делать во время цикла, если вам хотел что-то когда-то, по крайней мере. Используйте для цикла, если вы хотите сделать что-то определенное количество раз. В конце концов, именно поэтому есть три различных вида петель. Таким образом, они могут быть использованы в правильном контексте. Но вы можете поменять их, если хотите. Если вы чувствуете себя комфортно с петель в то время как и вы всегда хотите, чтобы использовать во время циклов. Это то, что Вы можете сделать, хотя он может быть немного синтаксически сложно, когда для контура было бы намного проще. Меня зовут Дуг Ллойд и это CS50.