Вложенные циклы являются мощным инструментом программирования и часто используются для решения различных задач. В Java мы можем использовать вложенные циклы, чтобы повторять блоки кода множество раз, пока выполняются определенные условия. Один из самых популярных вложенных циклов — это вложенный цикл while.
Цикл while является одним из самых простых циклов в Java, который продолжает выполняться, пока указанное условие истинно. Таким образом, вложенный цикл while позволяет запускать один цикл внутри другого, повторяя его выполнение до тех пор, пока условие истинно.
В этой статье мы рассмотрим несколько примеров работы вложенного цикла while в Java. У них много практических применений, включая генерацию шахматной доски, поиск элементов в многомерных массивах и многое другое. Разберемся в деталях, как использовать вложенный цикл while и как управлять его выполнением. Давайте начнем!
Пример 1: Числа от 1 до 10
Пример 2: Таблица умножения
В следующем примере мы вложим цикл while внутри другого цикла while, чтобы создать таблицу умножения.
Код:
// Определяем переменные
int i = 1;
int j = 1;
// Внешний цикл
while (i <= 10) {
// Внутренний цикл
while (j <= 10) {
System.out.print(i * j + " ");
j++;
}
// Переходим на следующую строку
System.out.println();
// Сбрасываем счетчик внутреннего цикла
j = 1;
// Увеличиваем счетчик внешнего цикла
i++;
}
Результат:
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
Пример 3: Поиск максимального элемента в двумерном массиве
Давайте рассмотрим пример использования вложенного цикла while для поиска максимального элемента в двумерном массиве.
Для начала, создадим двумерный массив с некоторыми значениями:
int[][] numbers = {
{5, 2, 8},
{3, 9, 4},
{7, 1, 6}
};
Здесь каждый внутренний массив представляет одну строку в матрице.
Для поиска максимального элемента, мы можем использовать следующий код:
int max = numbers[0][0];
int i = 0;
while (i < numbers.length) {
int j = 0;
while (j < numbers[i].length) {
if (numbers[i][j] > max) {
max = numbers[i][j];
}
j++;
}
i++;
}
Здесь переменная max
инициализируется значением первого элемента в массиве numbers
. Затем мы используем вложенный цикл while для поиска максимального элемента по всему массиву.
Внутренний цикл while перебирает все элементы в текущей строке, сравнивая их со значением max
и обновляя max
, если находит бо́льшее значение.
После завершения вложенного цикла while для текущей строки, переменная i
инкрементируется, и мы переходим к следующей строке в массиве.
Когда внешний цикл while завершится (когда переменная i
достигнет значения, равного количеству строк в массиве), переменная max
будет содержать максимальный элемент во всем массиве.
Пример 4: Пирамида из звездочек
Рассмотрим пример создания пирамиды из звездочек при помощи вложенного цикла while:
public class PyramidExample {
public static void main(String[] args) {
int rows = 5;
int i = 0;
while (i < rows) {
int j = 0;
while (j <= i) {
System.out.print("* ");
j++;
}
System.out.println();
i++;
}
}
}
Результат выполнения программы:
*
* *
* * *
* * * *
* * * * *
В данном примере с помощью двух вложенных циклов while мы создаем пирамиду из звездочек. Внешний цикл управляет количеством строк, а внутренний цикл регулирует количество звездочек в каждой строке. Переменная i представляет номер текущей строки, а переменная j представляет номер текущей звездочки в строке. Внутренний цикл выполняется от 0 до i, чтобы напечатать нужное количество звездочек в каждой строке. При каждой итерации внутреннего цикла, печатается одна звездочка с пробелом, и затем переводится на новую строку. Таким образом, при каждой новой строке количество звездочек увеличивается на 1, и мы получаем пирамиду из звездочек.
Пример 5: Численный треугольник
Приведенный ниже код демонстрирует использование вложенного цикла while для создания численного треугольника.
public class NumericalTriangle {
public static void main(String[] args) {
int rows = 5;
int i = 1;
while (i <= rows) {
int j = 1;
while (j <= i) {
System.out.print(j + " ");
j++;
}
System.out.println();
i++;
}
}
}
Результат выполнения кода:
1 |
1 2 |
1 2 3 |
1 2 3 4 |
1 2 3 4 5 |
Пример 6: Нечетные числа
В данном примере мы используем два переменных: переменную i
для итерации по числам от нуля до заданного значения, и переменную j
для проверки условия нечетности числа.
Пример кода:
int i = 0;
int n = 10;
while (i <= n) {
int j = 1;
while (j <= i) {
if (j % 2 != 0) {
System.out.println(j);
}
j++;
}
i++;
}
В результате выполнения данного кода на экран будет выведено следующее:
1
1
3
1
3
5
1
3
5
7
1
3
5
7
9
Таким образом, в результате выполнения данного примера мы получаем все нечетные числа от 1 до 10.
Пример 7: Четырехугольная рамка
Данный пример демонстрирует использование вложенного цикла while для создания четырехугольной рамки из символов.
Внешний цикл while отвечает за отрисовку каждой строки рамки, а вложенный цикл while рисует символы внутри строки.
Пример кода:
public class BorderExample {
public static void main(String[] args) {
int width = 10;
int height = 5;
int row = 1;
while (row <= height) {
int column = 1;
while (column <= width) {
if (row == 1