Чем отличается while от for: Циклы while и for

Союзы As, When, While в значении «когда», «в то время как»

Союзы as, when, while используются в предложениях с придаточным времени, они похожи по смыслу и иногда взаимозаменяемы. Рассмотрим, в чем разница между ними.

As, When, While в значении «в то время как»

Эти три союза могут использоваться в значении «в то время как», то есть речи идет о двух действиях: одно произошло в то время, когда длилось другое. Фоновое действие обычно выражено в Past или Present Continuous, а действие, произошедшее, когда длилось фоновое, в Past или Present Simple.

В итоге получается схема:

  1. Фоновое действие, длившееся в прошлом, выражено в Past Continuous или Present Continuous.
  2. Действие, произошедшее посреди фонового, выражено в Past Simple или Present Simple.

When Harry was at work, someone broke into his apartment. – Когда Гарри был на работе, кто-то вломился в его квартиру.

While he was working, he usually sang his song. – Когда он работал, он часто пел свою песню.

As she was posing for the photographers, her bodyguard was holding off a suspicious fan. – Когда она позировала для фотографов, ее телохранитель удерживал от нее подозрительного фаната.

Другие значения When

When может использоваться не только для обозначения одновременных действий. Есть и другие случаи, и в них уместен только when, союзы while и as для них не подходят.

Пройдите тест на уровень английского:

Узнать свой уровень

  • Краткое действие в прошлом, прерывающее другое действие

I was sleeping when you called me. – Я спал, когда ты мне позвонил.

I was driving too fast, when you told me to stop. – Я ехал слишком быстро, когда вы сказали мне остановиться.

  • Действия происходят одно за другим.

When I found the missing cat, I called its owners. – Когда я нашел пропавшую кошку, я позвал ее владельцев.

She told me nothing when I asked her how she was doing. – Она ничего не сказала, когда я спросил, как у нее дела.

  • When используется в значении «каждый раз»

When my wife is angry, our neighbors can hear it. – Когда моя жена злится, это слышно нашим соседям.

I always want to smoke when I am nervous. – Я всегда хочу курить, когда нервничаю.

  • Уточняется время (без указания даты или точного времени), в которое что-то случилось или случится

It happened when I was nineteen. – Это случилось, когда мне было девятнадцать.

I will call you when you are ready. – Я позову тебя, когда ты будешьготов.

While или As — два долгих одновременных действия

While или as могут использоваться, когда одновременно происходят два долгих действия – они выражены Past Continuous или в Past Simple.

We were playing chess as they were playing volleyball. — Мы играли в шахматы, в то время как они играли в волейбол.

As I get older, I get more optimistic. — Становясь старше, я становлюсь оптимистичнее.

Союз As — одновременные краткие действия (сопутствующие)

Союз as может использоваться также для выражения кратких действий, происходящих одновременно с другим, которые в русском языке называют сопутствующими, то есть я делаю что-то одно, в то же время делая что-то другое: иду, напевая песню; сплю, посапывая; бегу, вздыхая и т. д. В русском языке такое действие выражается деепричастием (напевая, посапывая, вздыхая – это все деепричастия).

As she was talking to Jim, she heard someone screaming. — Разговаривая с Джимом, она услышала, как кто-то кричал.

As I walked to the exit, I realized that it was locked. — Подходя к выходу, я понял, что он был заперт.

Мои карточки со словами и выражениями


Здравствуйте! Меня зовут Сергей Ним, я автор этого сайта, а также книг, курсов, видеоуроков по английскому языку.

Подпишитесь на мой Телеграм-канал, чтобы узнавать о новых видео, материалах по английскому языку.

У меня также есть канал на YouTube, где я регулярно публикую свои видео.

вложенные и бесконечные, выход по break

Важной частью структурного программированию помимо операторов условий считаются циклы. Они помогают автоматизировать последовательные задачи в программе, а именно: повторить выполнение определенных участков кода. Такая необходимость возникает достаточно часто, когда нужно сделать что-нибудь много раз, тем самым, циклы упрощают эту задачу.

Понятие циклов

В нашей жизни мы достаточно часто сталкиваемся с цикличными задачами, к ним можно отнести любые списки, будь-то: продукты, задачи на день, запланированные экзамены. И действительно, когда мы приходим в магазин, то покупаем все, что есть в нашем списке, не останавливаясь, пока не сделаем этого.

В программировании циклы позволяют повторять некоторое действие в зависимости от соблюдения заданного условия. Таким образом организуется исполнение многократной последовательности инструкций.

Есть еще несколько важных понятий, которые нужно знать:

  • Телом цикла называется та последовательность кода, которую нужно выполнить несколько раз.
  • Единоразовое выполнение – это итерация.

Python позволяет также создавать вложенные циклы. Так, сначала программа запустит внешний и в первой его итерации перейдет во вложенный. Затем она снова вернется к началу внешнего и снова вызовет внутренний. Это будет происходить до тех пор, пока последовательность не завершится или не прервется.

Такие циклы полезны в том случае, если нужно перебрать определенное количество элементов в списке.

В Python есть только два цикла: for и while. Первый используется по большей мере в тех случаях, когда нужно написать многоуровневую программу с множеством условий.

Цикл «for»

Цикл for в Python 3 выполняет написанный код повторно согласно введенной переменной или счетчику. Он используется только тогда, когда необходимо совершить перебор элементов заранее известное число раз. Что это значит? У нас имеется список, сначала из него берется первый элемент, потом – второй и так далее, но с каждым из них совершается действие, которое указано в теле for. Примерно это выглядит так:

for [элемент] in [последовательность]:
    [сделать указанное]

For может содержать данные разных типов: цифры, слова и пр. Рассмотрим пример:

for i in 10, 14, 'первый', 'второй':
    print(i)

На экране после запуска появится такая запись:

10
14
первый
второй

Для упрощения часто используется функция range(), или диапазон. В циклах она указывает на необходимое количество повторов последовательности, уточняя, какие именно элементы из списка for, нам необходимы в данный момент. В скобках может быть указано от одного до трех чисел:

  • одно указывает на то, что нужно проверить все числа от 0 и до него;
  • два говорят о том, что перебрать нужно все числа, находящиеся между ними;
  • три числа сгенерируют список от первого до второго, но с шагом, равным третьей цифре.

Рассмотрим пример. Теоретически вы можете записать так:

for i in [14, 15, 16, 17, 18]:
    print(i)

Но это слишком затратно, особенно если чисел слишком много, поэтому лучше сделать так, используя указанный выше range():

for i in range(14,18):
    print(i)

И в первом, и во втором случае на экране появится такая последовательность:

14
15
16
17

Цикл «while»

While с английского языка переводится, как «до тех пор, как». Это достаточно универсальный цикл, он немного похож на условие if, но его код выполняется не один раз. Его условие записывается до тела цикла. После того, как оно выполнено первый раз, программа возвращается к заголовку и снова повторяет все действия. Этот процесс заканчивается тогда, когда условие цикла больше не может быть соблюдено, иными словами перестает быть истинным. Тем, что заранее неизвестно количество проверок, он отличается от предыдущего цикла for. Кстати, еще его называют циклом с предусловием.

Запись цикла while в Python выглядит так:

while [условие истинно]:
    [сделать указанное]

Приведем пример использования этого цикла:

count = 0
while count < 6:
    print(count)
    count += 2

Здесь переменной присваивается значение 0, после чего начинается цикл, в котором проверяется условие, чтобы число было меньше 6. В теле цикла также содержится две инструкции: первая выводит само число на экран, а вторая увеличивает его значение на два. Цикл, таким образом, выполняется, пока условие продолжает быть истинным. На экране перед вами появится следующая последовательность чисел:

0
2
4

После тела цикла можно указать else и блок операций, которые необходимо выполнить, когда закончится while.

Обычно в ней есть смысл, только если указана инструкция break, но программа работает и без последней. Посмотрим на код:

count = 3
while count < 7:
    print count, " меньше 7"
    count = count + 1
else:
    print count, " не меньше 7"

Переменная – 3, задается условие, что пока она меньше 7, нужно выводить ее и выражение «меньше 7», затем прибавлять к ней 1. В тех случаях, когда она уже становится равной 7, то в ход пойдет условие, указанное в else, и на экране появится, что переменная не меньше 7. В результате выполнения этого кода мы увидим:

3 меньше 7
4 меньше 7
5 меньше 7
6 меньше 7
7 не меньше 7

Инструкции break и continue

Оператор break используется для выхода из цикла Python — прерывает его досрочно. Так, если во время выполнения кода, программа натыкается на break, то она сразу прекращает цикл и выходит из него, минуя else. Это необходимо, например, если при выполнении инструкций была обнаружена ошибка, и дальнейшая работа бессмысленна. Посмотрим на пример его применения:

while True:
    name = input(‘Введите имя:’)
    if name == ‘хватит’:
        break
print(‘Привет’, имя)

Его реализация будет выглядеть так:

Введите имя: Ирина
Привет Ирина
Введите имя: Алексей
Привет Алексей
Введите имя: хватит

После этого выполнение программы будет прервано.

Другая инструкция, которая может менять цикл, — это continue. Если она указана внутри кода, то все оставшиеся инструкции до конца цикла пропускаются и начинается следующая итерация.

В целом, не следует слишком увлекаться использованием этих инструкций.

Цикл с постусловием

Во многих других языках программирования существуют циклы с постусловием, обычно они описываются так:

  • repeat [тут исполняемый код] until [условия продолжения];
  • do [тут исполняемый код] while [условия продолжения];

К сожалению, в Python цикл с постусловием отсутствует!

Цикл while может стать циклом с постусловием, тогда его примерный вид будет таким:

while True:
    if not условие:
        break

Или таким:

while condition is True:
    stuff()
else:
    stuff()

Так получается, что сначала дается тело цикла, а потом задается условие.

Бесконечные циклы

Бесконечными циклами в программировании называются те, в которых условие выхода их них не выполняется.

Цикл while становится бесконечным, когда его условие не может быть ложным. Например, при помощи него можно реализовать программу «Часы», которая бесконечно отображает время.

Примером реализации в Python бесконечного цикла будет такой код:

Num = 3
while num < 5:
    print "Привет"

Очевидно, что заданная переменная всегда останется цифрой 3, поскольку никак не задано ее увеличение, поэтому на экране просто будет появляться слово «Привет».

Зачастую цикл не должен быть бесконечным, поскольку это причина неустойчивой работы программы. Для того чтобы выйти из него, нужно нажать комбинацию клавиш: CTRL+C. При этом программы, из которых нет выхода, также существуют. К ним относятся: операционные системы, прошивки микроконтроллеров.

Вложенные циклы

Рассмотрим вложенные циклы в Python. Для реализации можно использовать как вложенные for, так и while.

Про них мы уже писали выше. Здесь же хочется привести пару примеров использования. Они очень часто используются при обработке двухмерных списков.

Вот пример создания двумерного списка и вывода его на экран с помощью print.

d = [[1,2,3],[4,5,6]]
for i in range(2): 
    for j in range(3): 
        print(d[i][j])

Нельзя с помощью одного break в Python выйти сразу из двух циклов. В этом случае нужно во внешнем цикле создать условие следующим образом.

toExit = False
while True:
    while True:
        toExit = doSomething()
        if toExit:
            break
    if toExit:
        break

Здесь приведен пример использования в Python цикла в цикле. Оба бесконечны. Все будет выполняться бесконечно, до тех пор, пока функция doSomething не вернет True. После этого поочередно сработают break во внешнем и во внутреннем циклах.

Заключение

Как правило, команды в коде выполняются последовательно: одна за другой. Именно поэтому, когда есть необходимость выполнить тело кода несколько раз, используются циклы. Циклы для Python очень значимы, именно они делают повторение простым, логичным и очень понятным.

Разница между циклом for и while в python

  • Автор сообщения:

Другая база для сравнения Для Пока
Объявление for(initialization; condition; iteration){ //тело цикла for} while (условие) { операторы; //тело цикла}
Формат Позволяет выполнять инициализацию, проверку условий и операторы итерации записываются в начале цикла. Разрешает инициализацию и проверку условий только в начале цикла.
Условие Повторяется бесконечное время, если условие не задано. Показывает ошибку, если условие не задано.
Инициализация Если инициализация выполняется один раз, если цикл for, то она никогда не повторяется. Если инициализация выполняется во время проверки условия, то она требуется каждый раз, когда цикл выполняет сам себя.
Оператор итерации Поскольку оператор итерации написан вверху, он будет выполняться только после того, как будут выполнены все операторы. Оператор итерации можно разместить в любом месте синтаксиса цикла.