На этом шаге мы рассмотрим цикл while
Цикл for используется, когда известно количество итераций. Когда количество итераций не известно используют цикл while. Его синтаксис приведен ниже:
while (условие) {
оператор1;
оператор2;
оператор3;
...
}
Тело цикла будет выполняться до тех пор, пока будет истинным условие. Из этого следует, что при использовании данного цикла нужно заботиться о выходе из цикла, т.е. влиять на значение условия.
Приведем несколько примеров, в котором используется данный цикл.
Пример 1. Вывод всех квадратов натуральных чисел, не превосходящие 100.
public class PrimerFirst { public static void main(String[] args) { int i = 1; int count = 1; while (i <= 100) { /*Пока значение переменной меньше или равна 100*/ System.out.println(i); /*Выводим значение переменной на экран*/ count++; /*Увеличиваем количество квадратов на 1.*/ i = count * count; /*Определяем значение следующего квадрата.*/ } } }
Проект можно взять здесь.
Рис. 1. Вывод программы
Пример 2. Программа проверяет, является ли число степенью двойки.
public class PrimerSecond { public static void main(String[] args) { int n = 1024; int m = 4090; int i = 1; while (i < n) { /*Пока число меньше n*/ i *= 2; /*умножаем его на 2.*/ } int j = 1; while (j < m) { /*Пока число меньше m*/ j *= 2; /*умножаем его на 2.*/ } /*если i = n, то выведем YES, иначе NO.*/ System.out.println((i == n) ? "YES" : "NO"); /*если j = m, то выведем YES, иначе NO.*/ System.out.println((j == m) ? "YES" : "NO"); } }
Проект можно взять здесь.
Рис. 2. Вывод программы
Пример 3. Решим следующую задачу: Вклад в банке составляет X рублей. Ежегодно он увеличивается на P процентов, после чего дробная часть копеек отбрасывается. Требуется определить: через сколько лет вклад составит не менее Y рублей.
public class PrimerThird { public static void main(String[] args) { int x = 10; int p = 15; int y = 1111; int count = 0; while (x < y) { /*Пока вклад меньше нужной суммы*/ x += x * p / 100; /*Увеличиваем значение суммы на p процентов*/ count++; /*Увеличиваем количество лет*/ } System.out.println(count); /*Выводим ответ на экран*/ } }
Проект можно взять здесь.
Рис. 3. Вывод программы
На следующем шаге мы рассмотрим цикл do while