Циклы 5 — Вложенные циклы

Введение

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

Цикл в цикле

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


// Пример вложенных циклов
for (int i = 0; i < 3; i++) {
  for (int j = 0; j < 5; j++) {
    // код для пары значений (i, j)
  }
}
  

Пример: перебор матрицы светодиодов

Если у нас есть матрица 8×8, вложенные циклы помогут пройтись по всем её элементам.


for (int row = 0; row < 8; row++) {
  for (int col = 0; col < 8; col++) {
    // Обработка светодиода на позиции (row, col)
  }
}
  

Практика

Генерация таблицы умножения в Serial Monitor


void setup() {
  Serial.begin(9600);
  
  for (int i = 1; i <= 10; i++) {
    for (int j = 1; j <= 10; j++) {
      Serial.print(i * j);
      Serial.print("\t"); // Табуляция
    }
    Serial.println();
  }
}

void loop() {
  // Пусто
}
  

Пробег по 2D-массиву


int data[3][4] = {
  {1, 2, 3, 4},
  {5, 6, 7, 8},
  {9, 10, 11, 12}
};

void setup() {
  Serial.begin(9600);

  for (int row = 0; row < 3; row++) {
    for (int col = 0; col < 4; col++) {
      Serial.print(data[row][col]);
      Serial.print(" ");
    }
    Serial.println();
  }
}

void loop() {
  // Пусто
}
  

Проект: «Анимация бегущей точки по матрице 8×8»

В этом проекте используется матрица светодиодов 8×8 и библиотека LedControl для управления.


#include 

// Пины для MAX7219: DIN, CLK, CS
LedControl lc = LedControl(12, 11, 10, 1);

void setup() {
  lc.shutdown(0, false);  // Включаем дисплей
  lc.setIntensity(0, 8);  // Яркость 0–15
  lc.clearDisplay(0);
}

void loop() {
  for (int row = 0; row < 8; row++) {
    for (int col = 0; col < 8; col++) {
      lc.clearDisplay(0);
      lc.setLed(0, row, col, true);
      delay(100);
    }
  }
}
  

Заключение

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

Циклы 6 — Прерывание циклов

<< Проекты << Все товары >> Статьи, уроки >>

Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Концевик оптический безконтактный

Концевик оптический безконтактный

Датчик работает на основе открытой оптопары. Срабатывает при появлении непрозрачного предмета в разр..

31.94грн.

Модуль реле 8-канальный 12В 10А

Модуль реле 8-канальный 12В 10А

8-канальный модуль реле для подключения напрямую к дискретному выходу контроллера. Светодиодная инди..

303.95грн.

Блок питания 12 В 5 А ноутбучный

Блок питания 12 В 5 А ноутбучный

Входное напряжение переменного тока 165...240 В 50/60 ГцВыходное стабилизированное напряжение 12 ВМа..

290.18грн.

ЦАП цифро-аналоговый преобразователь I2C

ЦАП цифро-аналоговый преобразователь I2C

Цифро-аналоговый преобразователь с I2C интерфейсом на основе микросхемы MCP4725Используетс..

139.58грн.

Разработка IoT устройств под ключ

Разработка IoT устройств под ключ

Разработка IoT устройств под ключ Вам нужно IoT устройство под ключ — от ..