Циклы в Java
1. Циклы в Java
В программировании компьютера (computer programming), цикл используется постоянно, и целью является выполнить программу много раз. Java поддерживает 3 разных вида цикла:
- Цикл for
- Цикл while
- Цикл do-while
Цикл for имеет 2 вида:
- Обычный цикл for.
- Цикл for-each ( Внесен с версии Java 5).
Команды могут использоваться в цикле:
- break
- continue.
2. Цикл for
Это структура цикла:
** for **
// start_value: Начинающее значение
// end_value: Завершающее значение
// increment_number: Значение увеличивается после каждого повторения.
for ( start_value; end_value; increment_number ) {
// Сделать что-то здесь ...
}
Рассмотрим изображенный пример:
ForLoopExample1.java
package org.o7planning.tutorial.javabasic.loop;
public class ForLoopExample1 {
public static void main(String[] args) {
// Объявляет переменную 'step', описывающую шаг цикла (Какой цикл)
int step = 1;
// Объявляет переменную 'value' с начинающим значением 0
// После каждого повторения 'value' прибавляет 3
// И цикл завершится когда 'value' больше или равен 10
for (int value = 0; value < 10; value = value + 3) {
System.out.println("Step =" + step + " value = " + value);
// Увеличить значение 'step' на 1, после повторения
step = step + 1;
}
}
}
Результаты запуска класса ForLoopExample1:
Step =1 value = 0
Step =2 value = 3
Step =3 value = 6
Step =4 value = 9
Смотрите другой пример, посчитать сумму чисел от 1 до 100:
ForLoopExample2.java
package org.o7planning.tutorial.javabasic.loop;
public class ForLoopExample2 {
// Это пример подсчета суммы от 1 до 100,
// и распечатать результат на экране.
public static void main(String[] args) {
// Объявить переменную
int total = 0;
// Объявить переменную 'value'
// Прикрепить начинающее значение 1
// После каждого повторения значение увеличивается на 1.
// Примечание: value++ индентично команде: value = value + 1;
// value-- индентично команде: value = value - 1;
for (int value = 1; value <= 100; value++) {
// Прикрепить значение 'total' старым значением добавляя 'value'.
total = total + value;
}
System.out.println("Total = " + total);
}
}
Результаты:
Total = 5050
3. Цмкл for-each
Цикл for-each внесен в Java с 5 версии. Является циклом, использующимся для перемещения (traverse) массива или набор (collection), он переместит по-порядку с первого элемента до последнего элемента массива или набора.
Смотрите так же:
Синтаксис:
// arrayOrCollection: Массив или набор (Collection).
for (Type variable: arrayOrCollection) {
// Code ...
}
Пример:
ForeachExample.java
package org.o7planning.tutorial.javabasic.loop;
public class ForeachExample {
public static void main(String[] args) {
// Объявить массив String.
String[] fruits = new String[] { "Apple", "Apricot", "Banana" };
// Ипользовать цикл for-each для перемещения элементов массива.
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
Запуск примера:
Apple
Apricot
Banana
4. Цикл while
Цикл while используется для выполнения программы много раз, когда условие еще является верным. Цикл while обычно используется когда количество повторений не предопределяется (Не фиксировано).
Это структура цикла while:
** while **
// Когда condition (условие) правильное, то сделать что-то.
while ( condition ) {
// Сделать что-то здесь...
}
Смотрите изображенный пример:
WhileExample1.java
package org.o7planning.tutorial.javabasic.loop;
public class WhileExampe1 {
public static void main(String[] args) {
int value = 3;
// Когда 'value' еще меньше 10, то цикл продолжает работать.
while (value < 10) {
System.out.println("Value = " + value);
// Увеличить значение value на 2 единицы
value = value + 2;
}
}
}
5. Цикл do-while
Цикл do-while используется для выполнения программы много раз. Особенностью do-while является то, что блок команд всегда выполняется минимум один раз. После каждого повтора (iteration), программа перепроверяет условие, если условие все еще является верным, блок команд снова выполнится.
Это структура цикла do-while:
** do while **
// Цикл do-while делает минимум 1 повтор (iteration)
// и когда условие остается верным, то он работает дальше.
do {
// Сделать что-то здесь.
}
while (condition);
Изображенный пример:
DoWhileExample1.java
package org.o7planning.tutorial.javabasic.loop;
public class DoWhileExample1 {
public static void main(String[] args) {
int value = 3;
// Цикл do-while всегда выполняется минимум 1 раз.
//
do {
System.out.println("Value = " + value);
// Увеличить значение 'value' на 3
value = value + 3;
} while (value < 10);
}
}
Результат:
Value = 3
Value = 6
Value = 9
6. Команда break в цикле
Команда break может появиться в цикле. Это команда, которая помогает программе выйти из цикла.
Пример:
LoopBreakExample.java
package org.o7planning.tutorial.javabasic.loop;
public class LoopBreakExample {
public static void main(String[] args) {
System.out.println("Break example");
int x = 2;
while (x < 15) {
System.out.println("----------------------\n");
System.out.println("x = " + x);
// Проверить если x = 5, то выйти из цикла.
if (x == 5) {
break;
}
x++;
System.out.println("x after ++ = " + x);
}
System.out.println("Done!");
}
}
Запуск примера:
Break example
----------------------
x = 2
x after ++ = 3
----------------------
x = 3
x after ++ = 4
----------------------
x = 4
x after ++ = 5
----------------------
x = 5
Done!
7. Команда continue в цикле
Команда continue может появиться в цикле, при встрече с командой continue программа пропустит строки команд в блоке команд и внизу continue, и начнет новый повтор (iteration) (Если условия все еще верны).
Пример:
LoopContinueExample.java
package org.o7planning.tutorial.javabasic.loop;
public class LoopContinueExample {
public static void main(String[] args) {
System.out.println("Continue example");
int x = 2;
while (x < 7) {
System.out.println("----------------------\n");
System.out.println("x = " + x);
// x = x + 1;
x++;
// Оператор % является делением с остатком.
// Если x является четным,то пропустить строки команд внизу 'continue',
// и продолжить новый повтор (iteration) (если условие все еще верно).
if (x % 2 == 0) {
continue;
}
System.out.println("x after ++ = " + x);
}
System.out.println("Done!");
}
}
Запуск примера:
Continue example
----------------------
x = 2
x after ++ = 3
----------------------
x = 3
----------------------
x = 4
x after ++ = 5
----------------------
x = 5
----------------------
x = 6
x after ++ = 7
Done!
8. Цикл с меткой (Labelled Loop)
Java позволяет вам прикрепить метку (Label) циклу, это похоже на то, что вы даете название циклу, это полезно когда вы используете много циклов сплетенных в одной программе.
- Вы можете использовать команду break labelX; чтобы break цикл с меткой labelX.
- Вы можете использовать команду continue labelX; чтобы continue цикл с меткой labelX.
Синтаксис:
** Labelled Loops **
// Цикл for с меткой (Label)
label1: for( ... ) {
}
// Цикл while с меткой (Label)
label2: while ( ... ) {
}
// Цикл do-while с меткой (Label)
label3: do {
} while ( ... );
Пример использования сплетенных циклов, с меткой и отмеченной командой break.
LabelledLoopBreakExample.java
package org.o7planning.tutorial.javabasic.loop;
public class LabelledLoopBreakExample {
public static void main(String[] args) {
System.out.println("Labelled Loop Break example");
int i = 0;
label1: while (i < 5) {
System.out.println("----------------------\n");
System.out.println("i = " + i);
i++;
label2: for (int j = 0; j < 3; j++) {
System.out.println(" --> " + j);
if (j > 0) {
// Выйти из цикла с меткой label1.
break label1;
}
}
}
System.out.println("Done!");
}
}
Запуск примера:
Labelled Loop Break example
----------------------
i = 0
--> 0
--> 1
Done!
Пример использования сплетенных циклов, с меткой и отмеченной командой continue.
LabelledLoopContinueExample.java
package org.o7planning.tutorial.javabasic.loop;
public class LabelledLoopContinueExample {
public static void main(String[] args) {
System.out.println("Labelled Loop Continue example");
int i = 0;
label1: while (i < 5) {
System.out.println("outer i= " + i);
i++;
label2: for (int j = 0; j < 3; j++) {
if (j > 0) {
continue label2;
}
if (i > 1) {
continue label1;
}
System.out.println("inner i= " + i + ", j= " + j);
}
}
}
}
Запуск примера:
Labelled Loop Continue example
outer i= 0
inner i= 1, j= 0
outer i= 1
outer i= 2
outer i= 3
outer i= 4
Java Basic
- Настройте java compiler для обработки вашего Annotation (Annotation Processing Tool)
- Программирование на Java для группы с помощью Eclipse и SVN
- Руководство Java WeakReference
- Руководство Java PhantomReference
- Сжатие и декомпрессия в Java
- Настройка Eclipse для использования JDK вместо JRE
- Методы String.format() и printf() в Java
- Синтаксис и новые функции в Java 8
- Регулярные выражения Java
- Руководство Java Multithreading Programming
- Библиотеки Java JDBC Driver для различных типов баз данных
- Руководство Java JDBC
- Получить значения столбцов, автоматически возрастающих при вставлении (Insert) записи, используя JDBC
- Руководство Java Stream
- Руководство Java Functional Interface
- Введение в Raspberry Pi
- Руководство Java Predicate
- Абстрактный класс и Interface в Java
- Модификатор доступа (Access modifiers) в Java
- Руководство Java Enum
- Руководство Java Annotation
- Сравнение и Сортировка в Java
- Руководство Java String, StringBuffer и StringBuilder
- Обработка исключений Java - Java Exception Handling
- Руководство Java Generics
- Манипулирование файлами и каталогами в Java
- Руководство Java BiPredicate
- Руководство Java Consumer
- Руководство Java BiConsumer
- Что мне нужно для начала работы с Java?
- История Java и разница между Oracle JDK и OpenJDK
- Установить Java в Windows
- Установите Java в Ubuntu
- Установите OpenJDK в Ubuntu
- Установить Eclipse
- Установите Eclipse в Ubuntu
- Быстрое изучение Java для начинающих
- История бит и байтов в информатике
- Типы данных в java
- Битовые операции
- Команда if else в Java
- команды switch в Java
- Циклы в Java
- Массивы (Array) в Java
- JDK Javadoc в формате CHM
- Наследование и полиморфизм в Java
- Руководство Java Function
- Руководство Java BiFunction
- Пример Java encoding и decoding с использованием Apache Base64
- Руководство Java Reflection
- Java Удаленный вызов методов - Java RMI
- Руководство Программирование Java Socket
- Какую платформу я должен выбрать для разработки приложений Java Desktop?
- Руководство Java Commons IO
- Руководство Java Commons Email
- Руководство Java Commons Logging
- Понимание Java System.identityHashCode, Object.hashCode и Object.equals
- Руководство Java SoftReference
- Руководство Java Supplier
- Аспектно-ориентированное программирование Java с помощью AspectJ (AOP)
Show More
- Руководства Java Servlet/JSP
- Руководства Java Collections Framework
- Java API для HTML, XML
- Руководства Java IO
- Руководства Java Date Time
- Руководства Spring Boot
- Руководства Maven
- Руководства Gradle
- Руководства Java Web Services
- Руководства Java SWT
- Руководства JavaFX
- Руководства Oracle Java ADF
- Руководства Struts2 Framework
- Руководства Spring Cloud