Цикли 5 — Вкладені цикли

Вступ

Вкладені цикли — це конструкція, в якій один цикл розташований всередині іншого. Такий підхід дозволяє працювати з багатовимірними структурами даних, повторювати дії в кількох напрямках та обробляти складні структури, наприклад, матриці світлодіодів або двовимірні масиви.

Цикл у циклі

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


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

Приклад: перебір матриці світлодіодів


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»


#include 

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

void setup() {
  lc.shutdown(0, false);
  lc.setIntensity(0, 8);
  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 размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Мікрофон зі спеціалізованим підсилювачем MAX9814

Мікрофон зі спеціалізованим підсилювачем MAX9814

Мікрофонний підсилювач на спеціалізованій мікросхемі MAX9814 Коефіцієнт підсилення вибирається..

189.28грн.

Таймери Arduino UNO — Частина 1. Вступ

Таймери Arduino UNO — Частина 1. Вступ

Таймери Arduino UNO — Частина 1. Вступ Теорія Що таке таймер у мікроконтролері ATmega3..

RFID NFC модуль PN532 — зчитувач міток 13.56 МГц для Arduino, ESP32, Raspberry Pi

RFID NFC модуль PN532 — зчитувач міток 13.56 МГц для Arduino, ESP32, Raspberry Pi

PN532 NFC модуль — це універсальний RFID/NFC зчитувач для роботи з безконтактними мітками, картками ..

279.07грн.

Одна кнопка — три команди на Arduino UNO: клік, подвійний клік і довге натискання

Одна кнопка — три команди на Arduino UNO: клік, подвійний клік і довге натискання

Одна кнопка — три команди: клік, довге натискання та подвійний клік на Arduino UNO У більшо..

Керування машинкою через WiFi

Керування машинкою через WiFi

Вирішив я недавно зробити апгрейд радіокерованого іграшкового джипу свого сина. Радіокерування м..