Elementor Header #8

52. Цикл While

1. Введение

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

2. Основы цикла while

Цикл while имеет простой синтаксис:

				
					while (условие) {
    // Блок кода, выполняемый, пока условие истинно
}

				
			
  • условие — логическое выражение, которое проверяется перед каждой итерацией цикла. Если условие истинно (true), выполняется блок кода внутри цикла. Если ложно (false), выполнение цикла прекращается.

3. Пример использования цикла while

Рассмотрим пример, в котором цикл while используется для вывода чисел от 1 до 5:

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

        while (count <= 5) {
            System.out.println("Count: " + count);
            count++;
        }
    }
}

				
			

Что происходит в этом примере:

  1. Переменная count инициализируется значением 1.
  2. Цикл while проверяет условие count <= 5.
  3. Если условие истинно, выполняется блок кода внутри цикла: текущее значение count выводится на экран, и count увеличивается на 1.
  4. После выполнения тела цикла, условие проверяется снова. Цикл продолжается до тех пор, пока count не станет равным 6, после чего цикл завершится.

4. Цикл с условием, зависящим от ввода пользователя

Цикл while часто используется для выполнения действий, которые должны повторяться до тех пор, пока пользователь не введёт определённое значение.

Пример:

				
					import java.util.Scanner;

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

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

            if (number >= 0) {
                System.out.println("Вы ввели: " + number);
            }
        }

        System.out.println("Программа завершена.");
    }
}

				
			

В этом примере программа запрашивает у пользователя ввод чисел до тех пор, пока не будет введено отрицательное число. Цикл продолжается, пока значение переменной number остаётся неотрицательным.

5. Бесконечные циклы

Если условие цикла while всегда остаётся истинным, такой цикл называется бесконечным. Бесконечные циклы могут быть полезны в ситуациях, когда программа должна работать постоянно, например, в серверных приложениях, но в большинстве случаев их следует избегать или предусматривать способ выхода из цикла.

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

				
					while (true) {
    System.out.println("This is an infinite loop");
    // Добавьте условие выхода, чтобы избежать зацикливания
    break; // Используйте break, чтобы выйти из цикла
}

				
			

В этом примере условие true всегда истинно, поэтому цикл будет бесконечным. Использование оператора break позволяет прервать выполнение цикла.

6. Ошибки при использовании цикла while

6.1 Ошибка: Условие никогда не становится ложным

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

Пример ошибки:

				
					int count = 1;

while (count <= 5) {
    System.out.println("Count: " + count);
    // Забыли увеличить count
}

				
			

Здесь программа будет выводить Count: 1 бесконечно, так как значение count не меняется.

Исправление:

				
					int count = 1;

while (count <= 5) {
    System.out.println("Count: " + count);
    count++; // Увеличиваем count, чтобы цикл завершился
}

				
			

6.2 Ошибка: Неправильная инициализация переменной

Если переменная, используемая в условии, неправильно инициализирована, цикл может завершиться сразу же, не выполнив ни одной итерации.

Пример ошибки:

				
					int count = 10;

while (count <= 5) {
    System.out.println("Count: " + count);
    count++;
}

				
			

В этом случае цикл не выполнится, так как начальное значение count (10) уже не удовлетворяет условию count <= 5.

Исправление:

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

Заключение

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

7. Тестовое задание

  1. Напишите программу, которая находит сумму всех чисел от 1 до 100 с использованием цикла while.
  2. Напишите программу, которая запрашивает у пользователя ввод целых чисел до тех пор, пока сумма введённых чисел не превысит 100.

Пример решения:

				
					public class Main {
    public static void main(String[] args) {
        // Задание 1: Сумма чисел от 1 до 100
        int sum = 0;
        int i = 1;

        while (i <= 100) {
            sum += i;
            i++;
        }

        System.out.println("Сумма чисел от 1 до 100: " + sum);

        // Задание 2: Ввод чисел до достижения суммы 100
        Scanner scanner = new Scanner(System.in);
        int total = 0;

        while (total <= 100) {
            System.out.print("Введите число: ");
            int number = scanner.nextInt();
            total += number;
            System.out.println("Текущая сумма: " + total);
        }

        System.out.println("Сумма превысила 100. Программа завершена.");
    }
}

				
			

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

logo