/ / Безкраен за (Java) цикъл

Неограничен за (Java) цикъл

В Java, както в почти всеки езикпрограмиране, има инструменти за осигуряване на многократно повторение на определена част от кода или, както се наричат, цикли. Циклите в Java са представени от изрази като for и while и техните варианти. Като правило циклите се използват за итерация върху едномерни и многомерни масиви и итеративни структури от данни (включително колекции), за да се намерят конкретни елементи и по-нататъшни операции с тях. Това обаче не е единственият начин да се използва инструмент като цикъла Java. Ще бъдат предоставени случаи на използване, както се считат.

Цикъл Java while: описание и примери

Основният операторен цикъл в Java едокато. Кодът, затворен в тялото му, ще се повтаря, стига условието на израза, затворено в скоби, след като удовлетворява логическата стойност на истината. Общата форма на изявлението while е както следва:

докато (състояние) {

// тяло на цикъла

}

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

цикли в java
Ако тялото на цикъла съдържа само един израз,тогава къдравите скоби могат да бъдат пропуснати, но се счита за добра форма, ако те винаги присъстват. Фигурата по-горе показва блок-схема на работата на този оператор.

За по-голяма яснота нека разгледаме примера, показан на фигурата по-долу:

while цикъл java

Декларираната променлива count първоначално имастойност 1. След това виждаме логически израз, затворен в скоби след името на оператора. Ще бъде вярно, т.е. return true, докато стойността на променливата за броене е по-малка или равна на 10. В тялото на цикъла при всяко преминаване (итерация) стойността на променливата се увеличава с 1 и се показва на екрана на конзолата. Имайте предвид, че когато променливата достигне 11, цикълът спря да работи.

Ако стойността на броя на променливите първоначално е била 11, тогава условието на цикъла ще бъде невярно и програмата дори няма да въведе тялото си.

Заслужава да се отбележи, че синтаксисът на Java позволяваизползвайте инструкция while без тяло. Нека дадем пример. Да предположим, че имаме две променливи i = 100 и j = 200, ние сме изправени пред задачата да изчислим тяхната аритметична средна стойност програмно - за това можете да използвате "кухата", докато:

докато (++ i <- j);

В резултат на това стойността на някоя от двете променливи ще бъде равна на средната стойност на първоначалните им стойности. Както можете да видите, цикълът работи добре без тяло и изпълнява всички необходими действия в условен израз.

Do-while цикъл

В предишните примери, ако условният изразпървоначално върна false, тогава изпълнението на програмата ще игнорира тялото на цикъла и ще продължи. Често обаче възникват ситуации, при които изпълнението на кода, съдържащ се в тялото на цикъла, е задължително поне веднъж, независимо от истинността на условния израз. С други думи, случва се да се проверява истинността на условния израз не в началото, а в края на цикъла. Вариант на цикъла while, наречен do-while, може да предостави тази функционалност. Той има следната форма:

направи {
// тяло на цикъла

} докато (състояние);

Както виждаме, първо тялото на цикъла преминава към изпълнение и едва след това се проверява истинността на условието - и така нататък при всяка итерация.

java цикли примери

Кодът по-горе ще работи нещо подобносъщото като при редовно време. Ако обаче сме присвоили стойността 11 на броя на променливите, тялото на цикъла пак ще се изпълни веднъж, преди операторът да може да тества израза за истина.

Описание и примери за - цикъл Java

Цикълът for е гъвкав иефективна езикова форма в Java. Преди петата версия на Java SDK имаше само една традиционна форма на оператора for и след това се появи нова - за всяка. В този раздел ще се запознаем с традиционната форма на оператор. за Java цикълът изглежда така:

за java цикъл

Преди контролът да се прехвърли на кода в тялотоцикъл, първо променливата i се инициализира, за да действа като брояч. След това се проверява условен израз, в който броячът се сравнява с определена стойност и ако връща true, тялото на цикъла се изпълнява. След това стойността на брояча се променя с предварително определена стъпка и условният израз се проверява отново и така, докато условието стане невярно. Диаграмата по-долу илюстрира всички етапи от цикъла.

за java цикъл

За по-добро разбиране, ето пример за това как работи цикълът за Java:

за java цикъл

Виждаме, че броячът се използвапроменлива loopVal. След всяка итерация на цикъла стойността му ще се увеличава с 1 и това ще продължи, докато достигне 11. Имайте предвид, че контролната променлива може да бъде декларирана извън оператора for, но ако няма да използвате тази променлива никъде, освен в цикъл, препоръчително е да го декларирате директно в изявлението. Имайте предвид, че променлива, декларирана в самия оператор, се обхваща в самия цикъл.

Има ситуации, когато трябва да деклариратеняколко променливи, контролиращи цикъла. За Java цикълът ви позволява да посочите две или повече променливи, разделени със запетаи, и това може да се направи както по време на тяхната инициализация, така и по време на итерация. Такъв оператор ще изглежда така:

за (int i = 1, int j = 10; i <j; ++ i, --j) {}

С всяка итерация стойността на променливата i ще се увеличава с 1, а стойността на променливата j ще намалява с 1. Итерациите ще се извършват, докато i е по-голямо или равно на j.

Характеристики на използването на оператора for

Цикълът for е доста гъвкавконструират, тъй като и трите му части (инициализация, състояние и увеличение / намаляване) могат да се използват извън етикета. Например, вместо условен израз с контролна променлива, можете да замените всяка булева променлива.

булев изход = false;

за (int i = 0 ;! изход; ++ i) {

изход = вярно;

}

В горния пример можем да наблюдаваме как работиЦикълът е абсолютно независим от управляващата променлива i и броят на итерациите зависи единствено от момента, в който изходът на променливата става истина. Освен това контролната променлива може да бъде напълно премахната от цикъла и това няма да повлияе по никакъв начин на нейната работа: for (;! Exit;) {}. Макар и да не е най-умният начин за програмиране, понякога може да бъде полезен. Основното нещо е да се предвиди ситуация, при която променливата ще вземе стойността, необходима за излизане от цикъла, за да не я превърне в безкрайна.

За Java цикъл може да бъде деклариран по този начинначин: за (;;) {}. Това е типичен пример за безкраен цикъл със специални условия на прекъсване. Ще говорим за това как да прекъснем подобни цикли малко по-късно.

За всеки цикъл

Цикълът foreach на Java винаги се отнася заитерация върху елементите на масив или някаква структура от данни и извършване на определени повтарящи се операции върху тях. Пример за тази форма на изявлението for е показан по-долу:

foreach loop java

Декларира се итерационната променливаname, а предварително декларираният масив от имена на низове действа като втори аргумент на оператора. Името на променливата ще приема стойностите на всеки елемент от масива на свой ред, докато всички негови елементи бъдат извлечени. Трябва да се отбележи, че типът на променливата трябва да е съвместим с типа на елементите, които се съхраняват в масива. Също така променливата на името е достъпна изключително за четене и опитът за промяната й няма да промени самия елемент в масива.

Циклични прекъсвания

Има три инструкции за прекъсване на цикъла:почивка, връщане и продължаване. Първите две са в състояние напълно да прекъснат работата на цикъла, докато продължаването прекъсва само работата на текущата итерация. Ако умишлено използвате безкраен цикъл на Java в кода си, тези оператори трябва да присъстват в него. Нека разгледаме прост пример за използване на почивка:

java цикъл изход

Въпреки че този оператор осигурява 11 повторения, ще бъдат изпълнени само 8, защото когато i броячът е 7, условието с оператора break в тялото ще се задейства.

Операторът return действа по подобен начин, с тази разлика, че не само излиза от цикъла Java, но и излиза от метода, в който е поставен цикълът.

Използване на break като goto

Имайте предвид, че почивката прекъсвасамо цикълът в тялото, на който е пряко разположен, т.е. ако го използвате в вложен цикъл, тогава външният цикъл няма да завърши. За това изявлението break може да се използва като цивилизована форма на goto.

В този вариант този оператор се използва ввъв връзка с етикет, който ви позволява да организирате изход не само от цикли, но и от всеки блок код. Етикетът е подходящо наречен идентификатор, последван от двоеточие. Етикетът е деклариран в началото на кодовия блок, който трябва да бъде маркиран. За да прекъснете изпълнението на маркиран блок, трябва да декларирате на правилното място: break tag_name. Помислете за примера на фигурата по-долу:

безкраен цикъл java

Кодът декларира три блока с имената на етикетите One,Съответно две и три. Операторът break с надпис Two е вложен във всичките три блока, но когато се задейства, програмата ще излезе от блока Three и Two и ще продължи изпълнението в One block. Тези. ще видим две съобщения в конзолата: Три и едно.

заключение

Запознахме се с концепцията за цикли в Java,основното while и за изявления, както и тяхното изпълнение и съответно за всяка форма. За по-добро разбиране препоръчваме да правите упражнения с помощта на тези оператори в различни форми, както и различни начини за прекъсването им и преминаването от един блок в друг.