<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%D0%91%D0%B5%D1%81%D0%BA%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D1%86%D0%B8%D0%BA%D0%BB</id>
	<title>Бесконечный цикл - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%D0%91%D0%B5%D1%81%D0%BA%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D1%86%D0%B8%D0%BA%D0%BB"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%91%D0%B5%D1%81%D0%BA%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D1%86%D0%B8%D0%BA%D0%BB&amp;action=history"/>
	<updated>2026-07-18T06:39:55Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%91%D0%B5%D1%81%D0%BA%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D1%86%D0%B8%D0%BA%D0%BB&amp;diff=9438&amp;oldid=prev</id>
		<title>imported&gt;Mercury: /* Практика */</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%91%D0%B5%D1%81%D0%BA%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D1%86%D0%B8%D0%BA%D0%BB&amp;diff=9438&amp;oldid=prev"/>
		<updated>2023-01-20T17:31:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Практика&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Бесконечный цикл&amp;#039;&amp;#039;&amp;#039; в [[программирование|программировании]] — [[цикл (программирование)|цикл]], написанный таким образом, что условие выхода из него никогда не выполняется. О программе, вошедшей в бесконечный цикл, иногда говорят, что она &amp;#039;&amp;#039;зациклилась&amp;#039;&amp;#039;&amp;lt;ref&amp;gt; Использование этого глагола вышло далеко за пределы программирования, и он зачастую применяется по отношению к субъектам в смысле характеристики некорректного поведения.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Представление о бесконечном цикле играет важную роль в понятии о [[Тьюринг-полнота|тьюринг-полноте]] языков программирования: с одной стороны, любой цикл можно представить как бесконечный цикл, в теле которого есть проверка условия выхода и команда выхода из цикла, с другой — любая программа может быть написана при помощи:&lt;br /&gt;
* бесконечных циклов,&lt;br /&gt;
* команд выхода из цикла,&lt;br /&gt;
* [[Оператор ветвления|операторов ветвления]] (&amp;lt;code&amp;gt;if-then&amp;lt;/code&amp;gt;),&lt;br /&gt;
* последовательности команд, исполняемых одна после другой.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Бесконечный цикл на языке [[Паскаль (язык программирования)|Паскаль]]: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
//Вариант 1&lt;br /&gt;
while true do&lt;br /&gt;
   begin&lt;br /&gt;
      {что-нибудь делаем}&lt;br /&gt;
      if {условие выхода из бесконечного цикла} then break&lt;br /&gt;
   end;&lt;br /&gt;
&lt;br /&gt;
//Вариант 2&lt;br /&gt;
repeat&lt;br /&gt;
{что-нибудь делаем}&lt;br /&gt;
until false;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для [[Си (язык программирования)|си]]-подобных языков:&amp;lt;ref&amp;gt;{{Cite web|lang=en-US|url=https://ask-dev.ru/info/18260/endless-loop-in-cc|title=Бесконечный цикл в C/C++ - программирование|access-date=2022-04-02}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
//вариант 1&lt;br /&gt;
for (;;) {&lt;br /&gt;
   /* что-нибудь делаем */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// вариант 2&lt;br /&gt;
while(true) {&lt;br /&gt;
   /* что-нибудь делаем */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Язык [[Ада (язык программирования)|Ада]] (а также ряд его потомков) имеют специальную конструкцию, описывающую бесконечный цикл:&amp;lt;ref&amp;gt;{{Cite web|url=https://ru.bmstu.wiki/index.php?title=Ada_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)&amp;amp;mobileaction=toggle_view_mobile#.D0.9E.D1.80.D0.B3.D0.B0.D0.BD.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F_.D1.86.D0.B8.D0.BA.D0.BB.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B8.D1.85_.D0.B2.D1.8B.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D0.B9|title=Ada (язык программирования) — Национальная библиотека им. Н. Э. Баумана|website=ru.bmstu.wiki|access-date=2022-04-02}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ada&amp;quot;&amp;gt;&lt;br /&gt;
loop&lt;br /&gt;
   -- что-нибудь делаем&lt;br /&gt;
end loop;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Кроме того, Ада позволяет осуществить выход сразу из нескольких вложенных циклов, а также имеет условную форму оператора выхода, позволяющую избежать использования оператора ветвления:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ada&amp;quot;&amp;gt;&lt;br /&gt;
Out_Cycle:&lt;br /&gt;
loop&lt;br /&gt;
   ...&lt;br /&gt;
   loop&lt;br /&gt;
      ...&lt;br /&gt;
      exit Out_Cycle when Logic_Exp;&lt;br /&gt;
      -- равносильно &lt;br /&gt;
      if Logic_Exp then &lt;br /&gt;
         exit Out_Cycle; &lt;br /&gt;
      end if;&lt;br /&gt;
      ...&lt;br /&gt;
   end loop;&lt;br /&gt;
   ...&lt;br /&gt;
end loop Out_Cycle;&lt;br /&gt;
--отсюда продолжится выполнение программы&lt;br /&gt;
--после выполнения инструкции exit Out_Cycle;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Практика ==&lt;br /&gt;
Программы, из которых выход возможен только выключением устройства или остановкой интерпретатора, представляют собой бесконечный цикл. К таким программам относятся:&lt;br /&gt;
* [[операционная система|Операционные системы]], [[Встроенное программное обеспечение|прошивки]] [[микроконтроллер]]ов.&lt;br /&gt;
* Некоторые виды [[скрипт]]ов (например, в [[компьютерная игра|играх]]). Такой принцип принят, например, в [[Game Maker]], в некоторых [[игра для программистов|играх для программистов]].&lt;br /&gt;
&lt;br /&gt;
Зацикливание (несрабатывание условия выхода из цикла) — нередкая ошибка программирования. Между тем, использование бесконечных циклов — это очень хороший профессиональный приём.&lt;br /&gt;
&lt;br /&gt;
Так, например, при решении задач на [[олимпиада по информатике|олимпиадах по информатике]] (программированию) различных уровней основная задача участника — за отведённое время написать программы, решающие предложенные алгоритмические задачи. Как правило, такие задачи решаются с использованием циклов. Очевидно, что времени на обдумывание условия выхода из цикла (которое должно указываться в так называемом &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;-цикле) у участника недостаточно. Поэтому очень полезным приёмом является использование модифицированных бесконечных циклов.&lt;br /&gt;
&lt;br /&gt;
Приём этот основан на том факте, что каждый современный язык программирования предлагает ряд операторов, позволяющих прервать выполнение тела цикла не после очередной итерации, а во время очередного выполнения (например, &amp;lt;code&amp;gt;Break&amp;lt;/code&amp;gt; в [[Delphi (язык программирования)|Delphi]], &amp;lt;code&amp;gt;EXIT FOR&amp;lt;/code&amp;gt; в [[Бейсик]]е и т. д.). Для экономии времени участник олимпиады пишет бесконечный цикл &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; с условием выполнения &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; (&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;while True do ...&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;), а затем по мере необходимости в теле цикла записывает операторы проверки условий, которые в случае необходимости прерывают выполнение цикла Break-подобными операторами.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{примечания}}&lt;br /&gt;
&lt;br /&gt;
{{нет ссылок|дата=2015-12-29}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Ошибки программирования]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Mercury</name></author>
	</entry>
</feed>