Веднъж Марк Зукърбърг отбеляза, че компютрите наистина са добри в повторението на команди. За човека не е лесно, уморяваме се да повтаряме едно и също нещо много пъти подред, но компютърът може да го прави мorони и мorарди пъти и никога да не му омръзва. Ако се опитате да изпратите поздрави на всички потребители на Facebook, няма човек, който да има достатъчно дни, за да го направи. Въпреки това можете да създадете компютър, който да реши тази задача, като напишете няколко реда code. Ето How работят циклите. Те ни позволяват да не повтаряме едни и същи рутинни действия. Най-популярният цикъл в Java е така нареченият дефиниран цикъл or for цикъл.
Как да напиша for цикъл в Java? За цикъл като цяло
Цикълът For изпълнява някои изрази за определен брой пъти. Например, писането петдесет пъти „Не трябва да бъда така, хо-хо, хо“ or изпращане на покани до всичките ви приятели са типични задачи за този вид цикъл. Синтаксисът на най-разпространената version на for цикъл:
for ([counter initialization]; [checking conditions]; [changing of the counter])
{
// statements
}
Изразът за инициализация се изпълнява веднъж, след което conditionто се оценява, което трябва да бъде булев израз.
- Когато цикълът започне, инициализациите се изпълняват.
- Когато условията се изчислят като false, нашият цикъл спира работата си.

Как да използвате for цикъл в Java. Прост пример.
Ето конкретен пример за цикъл на Java. Да напишем десет пъти "Здравей!" Низ всеки път ще бъде от новия ред с номер на този ред. Трябва да получим следващия изход:- Здравейте!
- Здравейте!
- Здравейте!
- Здравейте!
- Здравейте!
- Здравейте!
- Здравейте!
- Здравейте!
- Здравейте!
- Здравейте!
public class ForExample {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i + 1 + ". Hello!");
}
}
}
Как работи?
Стъпка 1. Брояч i = 0. Цикълът проверява нашето condition, i << 10, следователно операторите на цикъла се изпълняват. Отпечатва фразата "1. Здравей!". 1 е низ i + 1 (защото броим от нула, но първият ред все още е първият). Брояч i се увеличава. Сега i = 1. Стъпка 2. Брояч i = 1. i < 10, така че имаме фраза "2. Здравей!" и i + 1 = 2. … Стъпка 10. Брояч i = 9, имаме "10. Здравей!" и i се увеличава до 10. Стъпка 11. Брояч i = 10. i < 10 ? Не, невярно е. Следователно цикълът е завършен.
Цикъл while и for цикъл: разлики и прorки
В Java неопределеният цикъл or цикълът while се изпълнява непрекъснато, ако булевото condition се сбъдне. Синтаксисът на цикъла while:
while (boolean condition)
{
loop statements...
}
Доста често можете да изберете кой цикъл искате да използвате. Понякога те са много близки и можете да използвате и двете. Например, ето codeа за същата задача (писане десет пъти „Здравей!“ с номер на реда), написана с цикъл while:
public class ForAndForEach {
public static void main(String[] args) {
int j = 0; // we use the counter this way
while (j < 10) {
System.out.println(j + 1 + ". Hello!");
j++;
}
}
}
Професионалните програмисти обаче не харесват цикъла while и където е възможно, опитайте се да използвате цикъла for.
ЗА | ДОКАТО |
---|---|
Използваме цикъла for, ако вече знаем броя на итерациите. |
Използваме цикъл while, ако не знаем точния брой повторения. |
Инициализирането, проверката на състоянието и промяната на брояча вече са зашити в синтаксиса на цикъла |
Инициализация и проверка на състоянието вътре в цикъла. Можете допълнително да използвате брояч в отчети. |
Безкраен цикъл за:
|
Безкраен цикъл докато:
|
Как да излезете от for цикъл в java
Обикновено for цикълът работи като поток и естественият начин за излизане от цикъл е, когато дадено condition приеме невярна стойност. Въпреки това има два контролни израза, които ви позволяват да излезете от цикъла, преди да получите фалшивата стойност на дадено condition — прекъсване и продължаване.- break позволява излизане от текущото тяло на цикъла, сякаш conditionто на цикъла е оценено на false.
- continue кара цикъла да премине към следващата стъпка (итерация на брояча), без да изпълнява операторите.
public class ForBreakExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
for (int i = 0; i < names.length; i++) {
// how to break out of a for loop, java: check if we have any "Stranger" in // our array
if (names[i].equals("Stranger")) {
System.out.println("I don't chat with strangers");
break;
}
System.out.println("Hello," + names[i]);
}
}
}
Резултатът от изпълнението на нашата програма е:
Hello,Mike
Hello,Dustin
I don't chat with strangers
виждаш ли Избягахме от примката, преди да поздравим Лукас и Уил. Сега нека използваме продължи, само за да игнорираме „Непознат“, но да останем в цикъла, за да поздравим други приятели.
public class ForContinueExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
for (int i = 0; i < names.length; i++) {
if (names[i].equals("Stranger")) {
System.out.println("I don't chat with strangers");
continue;
}
System.out.println("Hello," + names[i]);
}
}
}
Резултатът е:
Hello,Mike
Hello,Dustin
I don't chat with strangers
Hello,Lucas
Hello,Will
Отлично! Поздравихме всички приятели, но не говорихме с непознат.
Подобрена version на for цикъл or for-each
For-each е вид for цикъл, който се използва, когато трябва да обработите всички елементи на масив or колекция. Всъщност самата фраза за всеки не се използва в този цикъл. Синтаксисът е Howто следва:
for (type itVar: array)
{
Block of operators;
}
Където type е типът на итеративната променлива (същия като типа данни на масива), ItVar е нейното име, array е масивът or може да има друга структура от данни, например ArrayList. Както можете да видите, няма брояч, променливата за итерация обхожда елементите на масив or колекция, а не стойностите на индекса. Когато се изпълнява такъв цикъл, на променливата за итерация последователно се присвоява стойността на всеки елемент от масива or колекцията, след което се изпълнява посоченият блок от инструкции (or оператор). Внимание: цикълът for-each може да се приложи към масиви и всяHowви класове, които имплементират интерфейса java.lang.Iterable. Нека разрешим същия проблем с поздрави приятели, като игнорираме непознати („Stranger“), но този път използваме цикъл for-each.
public class ForEachExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
// for each loop, Java code
for (String name : names) {
if (name.equals("Stranger")) {
System.out.println("I don't chat with strangers");
continue;
}
System.out.println("hello, " + name);
}
}
}
За да затвърдите наученото, ви предлагаме да гледате видео урок от нашия курс по Java
Още четене: |
---|
GO TO FULL VERSION