Как сделать бесконечный цикл в javascript
Один из способов сделать бесконечный цикл в JavaScript — это использовать цикл for и ключевое слово Infinity , означающее бесконечность.
for (let i = 0; i Infinity; i += 1) console.log(i); >
Каким бы ни был счетчик i , он будет оставаться меньше, чем бесконечность, и, соответственно, цикл продолжит работать.
20 октября 2021
Чтобы получить бесконечный цикл в JavaScript, достаточно сделать так, чтобы условие цикла всегда было истинным. В этом случае цикл будет выполняться бесконечно. Пример с циклом while :
while(true) console.log('Hello') >
При использовании цикла for можно просто не указывать условие в блоке инициализации цикла, тогда оно всегда будет считаться истинным.
for(let i = 1;; i += 1) console.log(i) >
Циклы в Java – как создать и прервать
Как в Java создавать циклы и управлять ими. Как с их помощью автоматизировать обработку массивов и генерацию объектов.
09 октября 2017 3 минуты 91756

Автор статьи
Мария Лисянская

Автор статьи
Мария Лисянская
https://gbcdn.mrgcdn.ru/uploads/post/1238/og_cover_image/ed12996e6ef61b13a868df82b32b1e6c

Цикл — это блок команд, который выполняется снова и снова, пока соблюдается определённое условие. Повторяемый фрагмент кода называют «телом цикла». Одно выполнение тела цикла называют итерацией.
В Яве можно работать с циклами нескольких типов — для этого есть следующие операторы:
while – цикл с предусловием – сначала проверяем условие, затем выполняем тело цикла;
do… while – цикл с постусловием – сначала выполняем один раз тело цикла, затем проверяем условие и, если оно соблюдается, продолжаем;
for – цикл со счётчиком – выполняется и при каждой итерации обновляет счётчик, пока условие в объявлении цикла соблюдается (т.е. проверка условия возвращает true);
сокращенный for (в других языках известен как foreach) – перебирает массив от первого элемента до последнего и на каждой итерации выполняет тело цикла.
Если мы используем конструкции с while, значение нужно указать перед началом цикла:
int a = 1;
System.out.println(a);
a++; //увеличиваем а на единицу
Если же переменная работает как счётчик цикла, а за его пределами не используется, её инициализируют прямо в условии. И тут же пишут, что с ней делать в конце каждой итерации. Всё это – в одну строку – с помощью for:
System.out.println(a);
Получаем тот же результат. Список можно было начать с нуля или с отрицательного значения – диапазон определяем сами.
Сокращенный вариант цикла for не содержит указаний ни на число повторов, ни на действия в конце шага. Цикл типа foreach используют для перебора массивов. От первого элемента нужно переходить к следующему – пока массив не кончится.
int[] ms = < 1, 2, 3, 4>; //создаем массив
int s = 0;
s *= i; //последовательно перемножаем элементы
System.out.println(s);
Вложенные циклы Java
Циклы можно вкладывать один в другой. При этом число повторов наружного и вложенных циклов умножается. Если внешний должен выполняться 5 раз и внутренний – 5, всего цикл будет выполнен 25 раз.
Выведем таблицу умножения с помощью двух массивов:
int a, b, result = 0;
result = a*b;
Надежные бесконечные циклы в Python
На мой взгляд работа с такими циклами зиждется на двух китах:
Кит 1: Они не существуют. Да-да, бесконечный цикл — своего рода чеширский кот, который может незаметно для программиста раствориться, оставив улыбку. И вот чтобы от вашей программы и результатов ее работы тоже не оставалась одна улыбка (а скорее недовольная гримасса начальника/заказчика), приходится соблюдать определенную осторожность. Каждый бесконечный цикл когда-то начался, а значит, когда-нибудь закончится, самое главное, чтобы он закончился когда удобно вам, а не поставщику данных, пользователю, тыкнувшему Ctrl+C, или прилетевшему НЛО. Проектируйте точки выхода из цикла. Чаще всего это будет конец итерации, впрочем возможен выход из середины. А иногда будут такие случаи, что перед выходом, кровь из носу, надо сделать какие-то действия, может даже еще одну-две итерации. Значит: выход из цикла надо крепко держать в своих руках и не отдавать на откуп сторонним библиотекам.
Кит 2: Долой магию. Под «магией» я понимаю использование нестандартных «мего-крутых» гиковских вещей, поведение которых вы не можете прогнозировать на все 100%. Я сам люблю написать несколько строчек, чтобы все сразу сделалось как надо. Вопрос в том, всегда ли при изменении начальных условий эта мега-крутости будут вести себя устойчиво и предсказуемо? Если вы еще не изучили их досконально, то может надежнее и эффективнее использовать более классические подходы? А то получится, что сэкономили 10 строчек, получили массу гемора и падений в критические моменты, и в конце-концов, чтобы от них избавиться дописали еще 50 строк кода 🙂
Как вы уже поняли, «магия» — понятие относительное. Когда я только начинал изучать питон, мне и конструкция вида
url=self._url + (http_params and (glue + '&'.join(['%s=%s' % (k,v) for k,v in http_params.items()])) or '')
На основе этого я выработал свой подход создания бесконечных циклов. Заводится вспомогательная переменная, назвать можно как угодно, я обычно называю working, далее все просто:
working = True
while working:
…
А дальше когда надо меняем working = False, цикл докручивается до конца, а следующий не начинается. Впрочем подход гибкий — можно не просто выйти из цикла, а сделать еще какие-то действия, выйти по середине (if not working: break) или даже прокрутить еще один-два цикла — все как требуется по задаче.
Причем совершенно необязательно менять эту переменную в самом цикле. Можно повесить обработчик на сигналы ОС и по определенному сигналу сбросить этот флаг. Так можно сделать красивый выход из цикла, чтобы при нажатии Ctrl+C на экран не вываливался трейсбек, и все наработанные данные валились вместе с ним в тартарары. Так есть возможность довести работу до логической точки, сохранить файлы, записать все изменения в БД и красиво выйти, помахав пользователю ручкой.
Такой подход зарекомендовал себя как гибкий и надежный, и активно используется в разных демонах.
Какие подходы используете вы?
Бесконечный цикл JS
Если в теле цикла не будет выполнено условие для выхода из него, цикл может выполняться бесконечно. Посмотрите пример:
let bool = true; while (bool) < console.log('!'); >
А в следующем примере в цикле забыто увеличение счетчика. Такой цикл также будет выполняться вечно:
let i = 1; while (i < 100) < console.log('!'); >
Смотрите также
- урок
краткая справка по циклу while
Трепачёв Дмитрий © 2012-2023
t.me/trepachev_dmitry