Нескінченний цикл

Нескінченний цикл — в програмуванні різновид циклу, записаний таким чином, що умова виходу з нього ніколи не виконується.

Про програму, що увійшла в нескінченний цикл, деколи говорять, що вона зациклилась. Використання цього дієслова вийшло далеко за межі програмування, і воно часто застосовується в зовсім іншому значенні.

Нескінченний цикл як абстрактна конструкція

Будь-який цикл, відповідно до Тюринг-повноти, можна виразити як нескінченний цикл, у тілі якого є перевірка умови виходу та команда виходу з циклу.

Будь-яка програма може бути написаною за допомогою:

  • нескінченних циклів;
  • команд виходу з циклу;
  • операторів розгалуження (if-then);
  • послідовністю команд, виконуваних одна за іншою;

Примітка: зверніть увагу, що універсальний оператор GOTO (безумовний перехід) не потрібен, а достатньо спеціального оператора виходу з циклу, при цьому, у випадку n вкладених циклів буде потрібно n спеціальних операторів виходу з циклу (окрім невеликої кількості мов з розширеним синтаксисом операторів виходу) або один оператор GOTO і одна мітка.

Приклади

while true do
   begin
      { тіло циклу }
   end;

//або
repeat
{ тіло циклу }
until false;

Для С-подібних мов[1]

for (;;) {
   /* тіло циклу */
}

// або
while(true) {
   /* тіло циклу */
}

// або
while(1) { 
   /* тіло циклу */
}

// або
do {
   /* тіло циклу */
} while(true)

// або
do {
   /* тіло циклу */
} while(1)
while True:
    # тіло циклу
:loop
 rem тіло циклу
goto loop
while true
do
# тіло циклу
done

Мова містить спеціальну конструкцію нескінченного циклу:

 loop {
    # тіло циклу
 }

Ада також містить спеціальну конструкцію, що описує нескінченний цикл[2]:

loop
   -- тіло циклу
end loop;

Окрім того, варто відмітити, що Ада дозволяє здійснити вихід одразу з декількох вкладених циклів, а також має умовну форму оператора виходу, що дозволяє уникнути використання оператора розгалуження.

Out_Cycle:
loop
   ...
   loop
      ...
      exit Out_Cycle when Logic_Exp;
      -- рівносильно 
      if Logic_Exp then 
         exit Out_Cycle; 
      end if;
      ...
   end loop;
   ...
end loop Out_Cycle;
--звідси продовжиться виконання програми
--після виконання інструкції exit Out_Cycle;
while true do
  -- тіло циклу
end

Практика

В програмуванні нескінченні цикли є одним з джерел нестійкої роботи програми. Тим не менш їх широко використовують в практиці.

Їхнє використання відбувається завдяки тому, що майже кожна мова програмування надає конструкції, які дозволяють примусово перервати виконання циклу. Наприклад, Break в Delphi, EXIT FOR в BASIC тощо.

В житті часто роблять нескінченний цикл while з умовою виконання True (while True do ...), й в подальшому за необхідність в тіло циклу додають умови, за яких зупиняють його виконання Break-подібними операторами.

В C++ цикл проходу по деякому набору елементів з використанням абстрактного класу (ітератора) виглядає так:

Element* el;
SomeIterator it();
for (el=it.get(); el!=NULL; el=it.get())
{
  ... 
}

В деяких діалектах Pascal цей же цикл (із зберіганням можливості використовувати оператор continue, тобто, без el:=it.Get; в кінці циклу) виглядає так:

it := SomeIterator.Create;
repeat
  el := it.Get;
  if el=nil then break;
  ...
until false;

Програми, з яких немає виходу (наприклад операційні системи, прошивки мікроконтролерів), також зазвичай є нескінченними циклами. Для попередження неконтрольованого нескінченого циклу використовують сторожовий таймер.

В деяких випадках, наприклад, в скриптах керування персонажами комп'ютерних ігор, вихід з програми фактично означає її зупинку. Тому розробник не вказувати умову виходу, інтерпретатор ігрової програми працює в нескінченному циклі. Такий принцип прийнятий, наприклад, в Game Maker, в деяких іграх для програмістів.

Приклади

Див. також

Примітки

Read other articles:

iCherry (ditulis i-Cherry) adalah sebuah perusahaan elektronik asal Indonesia. Perusahaan ini didirikan pada tahun 2011[1] dan berbasis di Kota Medan, Sumatera Utara.[2] Perusahaan ini memproduksi berbagai macam elektronik, seperti handphone dan laptop.[3][4] PT. iCherry Selular IndonesiaNama dagangiCherryJenisPublikIndustriElektronikDidirikan2011; 13 tahun lalu (2011)KantorpusatJl. Wahidin Nomor 95, Pandau Hulu II, Medan Area, Kota Medan, Indonesia[5...

 

Ada usul agar artikel ini digabungkan ke Bandung. (Diskusikan) Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Bandung Selatan – berita · surat kabar · buku · cendekiawan · JSTOR Bandung Selatan adalah wilayah di Kabupaten Bandung. Daerah-daerah yang ...

 

Dodol KentangTempat asalIndonesiaDaerahKerinci, JambiDibuat olehOrang KerinciBahan utamaKentangSunting kotak info • L • BBantuan penggunaan templat ini Dodol kentang adalah panganan manis khas Jambi yang berasal dari daerah Kabupaten Kerinci.[1][2] Dodol kentang sama seperti dodol pada umumnya, yang membedakan adalah bahan utamanya, kentang. Referensi ^ Dodol Kentang, Oleh-oleh Khas Kerinci Pada tempo 23 Desember 2011 ^ Fakta Unik Dodol Kentang, Oleh-Oleh yang Wa...

Lal Bahadur Shastriलालबहादुर शास्त्री Perdana Menteri India KeduaMasa jabatan9 Juni 1964 – 11 Januari 1966PresidenSarvepalli Radhakrishnan PendahuluGulzarilal Nanda (Bertindak)PenggantiGulzarilal Nanda (Bertindak)Menteri Luar NegeriMasa jabatan9 Juni 1964 – 18 Juli 1964 PendahuluGulzarilal NandaPenggantiSardar Swaran SinghMenteri Dalam NegeriMasa jabatan4 April 1961 – 29 Agustus 1963Perdana MenteriJawaharlal Nehru PendahuluGov...

 

Sumber referensi dari artikel ini belum dipastikan dan mungkin isinya tidak benar. Mohon periksa, kembangkan artikel ini, dan tambahkan sumber yang benar pada bagian yang diperlukan. (Pelajari cara dan kapan saatnya untuk menghapus pesan templat ini) Netralitas artikel ini dipertanyakan. Diskusi terkait dapat dibaca pada the halaman pembicaraan. Jangan hapus pesan ini sampai kondisi untuk melakukannya terpenuhi. (Pelajari cara dan kapan saatnya untuk menghapus pesan templat ini) Indy Rahmawat...

 

Синелобый амазон Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:ЧетвероногиеКлада:АмниотыКлада:ЗавропсидыКласс:Пт�...

194th Fighter SquadronA U.S. Air Force F-15C Eagle flies over the skies of Fresno, California. The aircraft is assigned to the 144th Fighter Wing, California Air National Guard, Fresno, Calif.Active1943–PresentCountry United StatesAllegiance CaliforniaBranch  Air National GuardTypeSquadronRoleFighter/Air DefensePart ofCalifornia Air National GuardGarrison/HQFresno Air National Guard Base, Fresno, CaliforniaNickname(s)GriffinsTail codeCalifornia with Fresno stripeCommand...

 

此條目可参照英語維基百科相應條目来扩充。 (2021年5月6日)若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品质内容。依版权协议,译文需在编辑摘要注明来源,或于讨论页顶部标记{{Translated page}}标签。 约翰斯顿环礁Kalama Atoll 美國本土外小島嶼 Johnston Atoll 旗幟颂歌:《星條旗》The Star-Spangled Banner約翰斯頓環礁�...

 

Konya Atatürk Stadium Konya Atatürk Stadium (Turkish: Konya Atatürk Stadı) was a multi-purpose stadium in Konya, Turkey. It was used mostly for football matches and was the home ground of Konyaspor. The stadium held 22,559 people and was built in 1950 and the stadium was demolished in 2018.[1] References ^ World Stadiums: Konya Atatürk Stadium Archived 2013-07-01 at the Wayback Machine External links Venue information vteKonyaspor Kulübü Founded in 22 June 1922 Based in Konya S...

Académie de VaucluseHôtel de Salvati-Palasse, siège de l'Académie de VaucluseHistoireFondation 1801, continuation de 1658CadreZone d'activité Avignon, le Comtat Venaissin, la Principauté d’Orange, le Vaucluse et plus généralement la ProvenceSiège AvignonPays  FranceCoordonnées 43° 56′ 53″ N, 4° 48′ 24″ ELangue françaiseOrganisationDirigeant Chanoine Daniel Bréhier, PrésidentPersonnes clés Jean-François Cerquand, François Daleau, S...

 

Australian daily tabloid newspaper This article is about the Australian newspaper. For the British newspaper, see The Daily Telegraph. For other uses, see The Telegraph (disambiguation). The Daily TelegraphCover of The Daily Telegraph (26 May 2016), occupied by a story on David Feeney, during the 2016 federal election campaign.TypeDaily newspaperFormatTabloidOwner(s)Nationwide News (News Corp Australia)EditorBen EnglishFounded 1879 (as The Daily Telegraph) 1990 (merger with The Daily Mirror a...

 

Peta infrastruktur dan tata guna lahan di Komune Légéville-et-Bonfays.  = Kawasan perkotaan  = Lahan subur  = Padang rumput  = Lahan pertanaman campuran  = Hutan  = Vegetasi perdu  = Lahan basah  = Anak sungaiLégéville-et-Bonfays merupakan sebuah komune di departemen Vosges yang terletak pada sebelah timur laut Prancis. Lihat pula Komune di departemen Vosges Referensi INSEE lbsKomune di departemen Vosges Les Ableuvenettes Ahéville Aingeville Ainvel...

ريشي كابور (بالهندية: ऋषि कपूर)‏    معلومات شخصية الميلاد 4 سبتمبر 1952   مومباي  الوفاة 30 أبريل 2020 (67 سنة) [1]  مومباي[1]  سبب الوفاة ابيضاض الدم[2]  مكان الدفن مومباي  مواطنة الهند  الزوجة نيتو سينغ (22 يناير 1980–30 أبريل 2020)  الأولاد رانبير ك�...

 

Disambiguazione – Se stai cercando altri significati, vedi Arizona (disambigua). Arizonastato federato(EN) State of Arizona (dettagli) (dettagli) Arizona – VedutaGrand Canyon LocalizzazioneStato Stati Uniti AmministrazioneCapoluogoPhoenix GovernatoreKatie Hobbs (D) dal 2023 Data di istituzione14 febbraio 1912 TerritorioCoordinatedel capoluogo34°17′12″N 111°39′25″W34°17′12″N, 111°39′25″W (Arizona) Altitudine22 - 3 852 m s.l.m. Superfi...

 

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Kiki dan Koko – berita · surat kabar · buku · cendekiawan · JSTOR Kiki dan Koko Kiki dan Koko di dalam tumpukan kacang, dari film Chip 'n Dale Rescue Rangers Penampilan perdana Private Pluto tahun 1943 Pencip...

Irish physicist (1851–1901) George Francis FitzGeraldFRS HonFRSE MRIAFitzGerald, c. 1890sBorn(1851-08-03)3 August 1851Dublin, IrelandDied21 February 1901(1901-02-21) (aged 49)Dublin, IrelandResting placeMount Jerome Cemetery, DublinAlma materTrinity College DublinKnown forLorentz–FitzGerald contractionSpark-gap transmitterSpouse Harriette Mary Jellett ​ ​(m. 1885)​Children8ParentsWilliam FitzGeraldAnne Frances StoneyRelativesJohn...

 

  لمعانٍ أخرى، طالع كمية (توضيح). الكمية الغذائية المرجعية، يرمز لها (DRI) اختصاراً لـ (Dietary Reference Intake) هي نظام تغذية توصي به الأكاديمية الوطنية للطب في الولايات المتحدة الأمريكية،[1] والصادر عنها سنة 1997 من أجل توسيع مفهوم الإرشادات التي سبقته، والتي كانت تسمى الكميات �...

 

ハンガリー語 magyar nyelv発音 IPA: [ˈmɒɟɒr ˈɲɛlv]話される国  ハンガリー ルーマニア セルビア スロバキア スロベニア クロアチア モルドバ オーストリア チェコ イタリア ポーランド ウクライナ ボスニア・ヘルツェゴビナ カナダ アメリカ合衆国 イスラエル地域 東ヨーロッパ話者数 1450万人言語系統 ウラル語族 フィン・ウゴル語派ウゴル諸語ハンガ�...

邦菲诺波利斯-迪米纳斯Bonfinópolis de Minas市镇邦菲诺波利斯-迪米纳斯在巴西的位置坐标:16°34′01″S 45°59′24″W / 16.5669°S 45.99°W / -16.5669; -45.99国家巴西州米纳斯吉拉斯州面积 • 总计1,778.162 平方公里(686.552 平方英里)人口 • 總計5,828人 • 密度3.28人/平方公里(8.49人/平方英里) 邦菲诺波利斯-迪米纳斯[1](葡萄牙語:...

 

Scott–Marcondes Cesar–São José dos CamposTeam informationUCI codeSCFRegisteredBrazilFounded1993 (1993)Discipline(s)RoadStatusUCI Professional ContinentalKey personnelGeneral managerJosé Carlos Monteiro Jersey Team Scott–Marcondes Cesar–São José dos Campos (UCI team code: SCF) was a Brazilian UCI Continental road bicycle racing team, based on São José dos Campos. The team was created in 1993 by José Carlos Monteiro, who is the general team manager since its foundation. Aft...