Skip to content

while

Цикл while в Java — это одна из управляющих конструкций, которая позволяет выполнять блок кода многократно, пока выполняется некоторое условие. Он особенно полезен, когда заранее неизвестно, сколько раз нужно повторить действия.

Синтаксис цикла while:

while (условие) {
    // Блок кода, который будет выполняться, пока условие истинно
}
  • Условие проверяется перед каждой итерацией.
  • Если условие истинно, то выполняется тело цикла.
  • Как только условие становится ложным, выполнение цикла прекращается, и управление передаётся следующей части программы.

Пример 1: Базовый цикл while

Предположим, что нужно вывести числа от 1 до 5:

public class Main {
    public static void main(String[] args) {
        int i = 1;  // Начальная переменная

        while (i <= 5) {  // Цикл продолжается, пока i <= 5
            System.out.println(i);  // Вывод значения переменной i
            i++;  // Увеличиваем i на 1 после каждой итерации
        }
    }
}

Объяснение: 1. Переменная i инициализируется значением 1. 2. Цикл будет выполняться до тех пор, пока переменная i не станет больше 5. 3. В каждой итерации выводится текущее значение переменной i, после чего оно увеличивается на 1.

Результат:

1
2
3
4
5

Важные моменты:

  1. Бесконечные циклы: Если условие цикла всегда истинно, то цикл будет выполняться бесконечно. Чтобы этого избежать, нужно следить за изменением условий.

Пример бесконечного цикла:

while (true) {
    // Этот цикл будет продолжаться бесконечно
}

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

Пример 2: Бесконечный цикл с ручным выходом

public class Main {
    public static void main(String[] args) {
        int i = 1;

        while (true) {
            System.out.println(i);
            i++;
            if (i > 5) {
                break;  // Прерывание цикла, если i больше 5
            }
        }
    }
}

Результат:

1
2
3
4
5
  1. Пропуск итерации с continue: Иногда нужно пропустить часть итераций, не завершая весь цикл. Это можно сделать с помощью оператора continue.

Пример 3: Пропуск итерации

Выведем только чётные числа от 1 до 10:

public class Main {
    public static void main(String[] args) {
        int i = 1;

        while (i <= 10) {
            if (i % 2 != 0) {
                i++;
                continue;  // Пропустить эту итерацию, если i нечетное
            }
            System.out.println(i);  // Выводим только четные числа
            i++;
        }
    }
}

Результат:

2
4
6
8
10

Цикл while с пользовательским вводом

Пример 4: Запрос пользовательского ввода

Программа будет продолжать спрашивать у пользователя число, пока он не введёт 0:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number;

        while (true) {
            System.out.print("Введите число (0 для выхода): ");
            number = scanner.nextInt();

            if (number == 0) {
                break;  // Прерывание цикла, если введен 0
            }

            System.out.println("Вы ввели: " + number);
        }
    }
}

Результат:

Введите число (0 для выхода): 5
Вы ввели: 5
Введите число (0 для выхода): -2
Вы ввели: -2
Введите число (0 для выхода): 0

Цикл while и массивы

Цикл while можно использовать для итерации по массиву.

Пример 5: Проход по массиву с помощью while

public class Main {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        int index = 0;

        while (index < numbers.length) {
            System.out.println(numbers[index]);
            index++;
        }
    }
}

Результат:

1
2
3
4
5

Важно: Следить за условиями выхода из цикла

Неправильное или отсутствующее изменение переменных, участвующих в условии цикла, может привести к бесконечному циклу.

Пример 6: Потенциальная ошибка

int i = 10;
while (i > 0) {
    System.out.println(i);
    // i--;  // Если забыть уменьшить i, цикл будет выполняться бесконечно
}

Заключение

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

пример

https://gitlab.com/synergy9980417/tema2_urok2_2