Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Циклы Java: Core

Видео может быть заблокировано из-за расширений браузера. В статье вы найдете решение этой проблемы.

Цикл while

Цикл while выполняется, пока истинно проверяемое условие. Логическое значение условия вычисляется перед исполнением тела цикла.

int i = 0;

while (i < 5) {
    System.out.println("Счётчик равен = " + i);
    i = i + 1;
}

Вывод на экран:

Счётчик равен = 0
Счётчик равен = 1
Счётчик равен = 2
Счётчик равен = 3
Счётчик равен = 4
// Получение новой строки в цикле
int len = str.length();
int i = 0;
String modifiedStr = "";
char symbol;

while (i < len) {
    symbol = str.charAt(i);
    modifiedStr = modifiedStr + Character.toUpperCase(symbol);
    i = i + 1;
}

System.out.println(modifiedStr); //=> "ABC"

Цикл do...while

Цикл do...while выполняется до тех пор, пока условие не станет ложным. Отличие от простого цикла while в том, что условие проверяется после выполнения выражения, то есть выражение выполнится как минимум один раз.

int i = 10;

do {
    System.out.println("Счётчик равен = " + i);
    i += 1;
} while (i < 5);

Вывод на экран:

Счётчик равен = 11
String str = "abc";
int len = str.length();
int i = 0;
char symbol;
String modifiedStr = "";
//строка не может быть пустой - иначе сломается цикл

do {
    symbol = str.charAt(i);
    modifiedStr = modifiedStr + Character.toUpperCase(symbol);
    i+=1;
} while (i < len);

System.out.println(modifiedStr); //=> "ABC"

Цикл for

Выражение for создаёт цикл, состоящий из 3 необязательных выражений в круглых скобках, разделённых точками с запятой:

  • Инициализация счётчика.
  • Условие цикла. Так же как и в цикле while, этот цикл будет повторяться пока это условие истинно.
  • Обновление счётчика. Как менять счётчик в каждом шаге.
for (int i = 0; i < 5; i++) {
    System.out.println("Счётчик равен = " + i);
}

Вывод на экран:

Счётчик равен = 0
Счётчик равен = 1
Счётчик равен = 2
Счётчик равен = 3
Счётчик равен = 4
String str = "abc";
String modifiedStr = "";
char symbol;

for (int i = 0; i < str.length(); i++) {
    symbol = str.charAt(i);
    modifiedStr = modifiedStr + Character.toUpperCase(symbol);
}

System.out.println(str); //=> "ABC"

Возврат из циклов

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

// Метод для тестирования числа на простоту

// Если во время деления числа на делители нашлось число,
// которое делит исходное число без остатка, то число не простое
// Можно сразу вернуть false. Дальнейшие вычисления не имеет смысла делать

static boolean isPrime(int number) {
    for (int i = 2; i < number; i++) {
        if (number % i == 0) {
            // дальнейшие проверки не нужны
            // return прерывает цикл
            return false;
        }
    }

    return true;
}

Синтаксический сахар

int a = 1;
a *= 2; // Эквивалентно a = a * 2
System.out.println(a); //=> 2

int b = 2;
b /= 2; // Эквивалентно b = b / 2
System.out.println(b); //=> 1

int с = 3;
с += 5; // Эквивалентно c = c + 5
System.out.println(c); //=> 8

Инкремент и декремент

// Постфиксный
int i1 = 0;
System.out.println(i1--); //=> 0
System.out.println(i1); //=> -1

// Префиксный
int i2 = 0;
System.out.println(++i2); //=> 1
System.out.println(i2); //=> 1

Управляющие инструкции

// Оператор break прерывает цикл
// Выполнение кода продолжается с конструкции, идущей за циклом

int i = 0;
while (true) {
    if (i >= 5) {
        break;
    }
    System.out.println(++i);
}
System.out.println("Finished");

Вывод на экран:

1
2
3
4
5
Finished
int i = 0;
while (true) {
    if (i >= 15) {
        break;
    }

    i++;

    if (i < 10) {
        continue;
    }
    System.out.println(i);
}

Вывод на экран:

10
11
12
13
14
15

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Ошибки, сложный материал, вопросы >
Нашли опечатку или неточность?

Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

Что-то не получается или материал кажется сложным?

Загляните в раздел «Обсуждение»:

  • задайте вопрос. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
  • расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
  • изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.
Об обучении на Хекслете

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
900
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 130 курсов, 2000+ часов теории
  • 900 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг»

Изображение Тото

Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу