Java code for looping

Цикл For в Java

Java-университет

Как используют цикл for в Java - 1

Говорят, что лучший программист — ленивый программист. Вместо того, чтобы совершать однотипные действия по нескольку раз, он придумает алгоритм, который сделает эту работу за него. А еще он сделает его хорошо, чтобы не нужно было переделывать. Примерно так, чтобы много раз не писать один и тот же код, придумали циклы. Представим, что нам нужно вывести в консоль числа от 0 до 99. Код без цикла:

 System.out.println(0); System.out.println(1); System.out.println(2); System.out.println(3); System.out.println(4); System.out.println(5); // И так далее 

Что такое циклы for?

  1. Приготовить стакан.
  2. Открыть крышку.
  3. Получить 1 каплю.
  4. Получить 2 каплю. …
  5. Получить 30 каплю.
  6. Закрыть лекарство.
  7. Принять полученную порцию.
  1. Приготовить стакан.
  2. Открыть крышку капель.
  3. Получить 30 капель.
  4. Закрыть лекарство.
  5. Принять полученную порцию.

Принцип работы цикла for

 for(; ; ) < // Тело цикла >Пример перебора цифр от 0 до 5 и вывод каждой в консоль: for(int i = 0; i

Как используют цикл for в Java - 2

Если перевести данную запись на человеческий язык, получится следующее: “Создай переменную i с начальным значением 0, пока она не достигнет 5, прибавляй к ней по 1 и на каждом шаге записывай значение i в консоль.” В основе работы цикла for в Java лежат три стадии, их можно изобразить следующей схемой: Условие выхода из цикла — это булево выражение. Если оно ложно, цикл будет завершен. В примере выше переменная i увеличивается на 1. Если ее значение менее 5, цикл продолжается. Но как только i станет больше или равно 5, цикл прекратится. Оператор счетчика — выражение, которое выполняет преобразование переменной счетчика. В примере выше переменная i увеличивалась на 1. То есть цикл будет выполнен ровно 5 раз. Если оператор счетчика будет прибавлять по 2 к переменной i , результат будет иным:

Также можно умножать переменную, делить, возводить в степень, в общем, делать все, что угодно. Главное, чтобы в результате преобразования получилось число. Тело цикла — любой код, который может быть выполнен. В примере выше в теле цикла был вывод значения переменной i в консоль, однако содержимое данного тела ограничено задачей и фантазией. Обобщая всю схему, принцип данного цикла — for — следующий: код, который находится в теле цикла, будет выполнен столько раз, сколько преобразований выполнит оператор счетчика до того, как будет достигнуто условие выхода из цикла. Если задать условие выхода из цикла как true :

 for(int i = 0; true; i++) < if(i % 1000000 == 0) System.out.println(i); >System.out.println("Loop ended"); 

То код после цикла будет помечен ошибкой unreachable statement , так как никогда не будет исполнен. Задача на смекалку: в результате запуска кода ниже будет ли выведено в консоль “ Loop ended ” или цикл будет выполняться бесконечно?

 for(int i = 0; i > -1; i++) < if(i % 1000000 == 0) System.out.println(i); >System.out.println("Loop ended"); 

Ответ: будет. Переменная i рано или поздно достигнет максимального значения, а дальнейшее увеличение превратит ее в максимальное отрицательное, в результате чего условие выхода будет выполнено (i < = -1).

Читайте также:  Sublime text 3 python настройка интерпретатора

Цикл forEach

При работе с циклами иногда приходится перебирать массивы или коллекции. Обычно массив можно перебрать с помощью цикла for:

 public void printAllElements(String[] stringArray) < for(int i = 0; i < stringArray.length; i++) < System.out.println(stringArray[i]); >> 

И это правильно. Однако, для перебора всех элементов массива по очереди придумали конструкцию forEach. Ее сигнатура следующая:

 public void printAllElements(String[] stringArray) < for(String s : stringArray) < System.out.println(s); >> 

Тоже кратко и лаконично. Самое главное, нет нужды думать о счетчике и об условии выхода, все уже сделано за нас.

Как используются циклы for

А теперь рассмотрим несколько примеров использование цикла for в Java для решения разнообразных задач.

Обратный цикл (от большего к меньшему)

Несколько переменных и увеличение счетчика в теле цикла

В цикле for можно использовать несколько переменных, например их можно преобразовывать в операторе счетчика:

 int a = 0; for(int i = 5; i > 0; i--, a++)
 Шаг: 0 Значение: 5 Шаг: 1 Значение: 4 Шаг: 2 Значение: 3 Шаг: 3 Значение: 2 Шаг: 4 Значение: 1 
 for(int i = 5, j = 11; i != j; i++, j--)
 i: 5 j: 11 i: 6 j: 10 i: 7 j: 9 

Вряд ли это действие имеет какую-либо ценность, но знать о такой возможности полезно. В цикле for также можно создавать внутренние циклы. В этом случае количество шагов цикла будет умножаться:

 for(int i = 0; i < 5; i++) < System.out.print(i + " | "); for(int j = 0; j < 5; j++) < System.out.print(j + " "); >System.out.print('\n'); > 
 0 | 0 1 2 3 4 1 | 0 1 2 3 4 2 | 0 1 2 3 4 3 | 0 1 2 3 4 4 | 0 1 2 3 4 

В цикле со счетчиком j есть возможность обращаться к счетчику внешнего цикла. Благодаря этому вложенные циклы — идеальный способ обхода двумерного, трехмерного и прочих массивов:

 int[][] array = < , , , >; for(int i = 0; i < array.length; i++) < for(int j = 0; j < array[i].length; j++) < System.out.print(array[i][j] + " "); >System.out.print('\n'); > 
 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 

Досрочное завершение цикла

Если при обработке цикла нужно его прервать, используйте оператор break , который останавливает работу текущего тела цикла. Все последующие итерации также пропускаются:

 public void getFirstPosition(String[] stringArray, String element) < for (int i = 0; i < stringArray.length; i++) < if(stringArray[i].equals(element)) < System.out.println(i); break; >> > 
 String[] array = ; getFirstPosition(array, "two"); 

Бесконечный цикл

Еще один способ создать бесконечный цикл for — оставить пустой область объявления счетчика, условие выхода и оператор счетчика:

Читайте также:  Ссылка на класс cpp

Как используют цикл for в Java - 3

Но учти, что в большинстве случаев бесконечный цикл — свидетельство логической ошибки. У такого цикла обязательно должно быть условие выхода.

Источник

Loops in Java

Looping in programming languages is a feature which facilitates the execution of a set of instructions/functions repeatedly while some condition evaluates to true. Java provides three ways for executing the loops. While all the ways provide similar basic functionality, they differ in their syntax and condition checking time.

java provides Three types of Conditional statements this second type is loop statement .

  • while loop: A while loop is a control flow statement that allows code to be executed repeatedly based on a given Boolean condition. The while loop can be thought of as a repeating if statement.

Java

while loop

  • Flowchart:
    • While loop starts with the checking of Boolean condition. If it evaluated to true, then the loop body statements are executed otherwise first statement following the loop is executed. For this reason it is also called Entry control loop
    • Once the condition is evaluated to true, the statements in the loop body are executed. Normally the statements contain an update value for the variable being processed for the next iteration.
    • When the condition becomes false, the loop terminates which marks the end of its life cycle.
  • for loop: for loop provides a concise way of writing the loop structure. Unlike a while loop, a for statement consumes the initialization, condition and increment/decrement in one line thereby providing a shorter, easy to debug structure of looping.

for (initialization condition; testing condition;increment/decrement)

Java

  • Flowchart:
    • Initialization condition: Here, we initialize the variable in use. It marks the start of a for loop. An already declared variable can be used or a variable can be declared, local to loop only.
    • Testing Condition: It is used for testing the exit condition for a loop. It must return a boolean value. It is also an Entry Control Loop as the condition is checked prior to the execution of the loop statements.
    • Statement execution: Once the condition is evaluated to true, the statements in the loop body are executed.
    • Increment/ Decrement: It is used for updating the variable for next iteration.
    • Loop termination:When the condition becomes false, the loop terminates marking the end of its life cycle.
  • do while: do while loop is similar to while loop with only difference that it checks for condition after executing the statements, and therefore is an example of Exit Control Loop.
Читайте также:  Css свойство которое позволяет управлять порядком наложения элементов

Java

  • Flowchart:
    • do while loop starts with the execution of the statement(s). There is no checking of any condition for the first time.
    • After the execution of the statements, and update of the variable value, the condition is checked for true or false value. If it is evaluated to true, next iteration of loop starts.
    • When the condition becomes false, the loop terminates which marks the end of its life cycle.
    • It is important to note that the do-while loop will execute its statements atleast once before any condition is checked, and therefore is an example of exit control loop.

Pitfalls of Loops

  • Infinite loop: One of the most common mistakes while implementing any sort of looping is that it may not ever exit, that is the loop runs for infinite time. This happens when the condition fails for some reason. Examples:
  • Infinite for loop :

Java

infinite while loop:

Java

Java

Another pitfall is that you might be adding something into you collection object through loop and you can run out of memory. If you try and execute the below program, after some time, out of memory exception will be thrown.

Java

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Unknown Source) at java.util.Arrays.copyOf(Unknown Source) at java.util.ArrayList.grow(Unknown Source) at java.util.ArrayList.ensureCapacityInternal(Unknown Source) at java.util.ArrayList.add(Unknown Source) at article.Integer1.main(Integer1.java:9)

Nested Loop:

Nested loop means a loop statement inside another loop statement.

There are different combinations of loop using for loop, while loop, do-while loop.

Источник

Оцените статью