Цикли 4 — Цикл do...while

Вступ

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

Відмінність від while

У звичайному while спочатку перевіряється умова, і лише потім виконується код, якщо вона істинна. У do...while порядок зворотний: спочатку виконується код, а потім перевіряється умова. Це гарантує хоча б одне виконання тіла циклу.


// Синтаксис
do {
  // код
} while (умова);
  

Коли зручно застосовувати

  • Коли потрібно виконати код хоча б один раз перед перевіркою умови.
  • Під час запиту даних у користувача, щоб спочатку отримати введення, а потім перевіряти його.
  • В інтерактивних програмах, коли потрібно показати меню хоча б один раз.

Практика

Введення значення через Serial Monitor доти, доки воно неправильне


int value;

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

void loop() {
  do {
    Serial.println("Введіть число від 1 до 5:");
    while (!Serial.available()) {
      // Чекаємо введення
    }
    value = Serial.parseInt();
    Serial.read(); // Очищення буфера
  } while (value < 1 || value > 5);

  Serial.print("Ви ввели правильне число: ");
  Serial.println(value);

  delay(2000);
}
  

Проєкт: «Введення пароля для увімкнення лампи»

Лампа вмикається лише у випадку, якщо введено правильний пароль.


const int lampPin = 3;
String password = "1234";
String inputString;

void setup() {
  pinMode(lampPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  inputString = "";
  
  do {
    Serial.println("Введіть пароль:");
    while (!Serial.available()) {
      // Чекаємо введення
    }
    inputString = Serial.readStringUntil('\n');
    inputString.trim(); // Прибираємо пробіли та перенос рядка
  } while (inputString != password);

  Serial.println("Пароль вірний! Лампа увімкнена.");
  digitalWrite(lampPin, HIGH);

  // Лампа горить 5 секунд, потім вимикається
  delay(5000);
  digitalWrite(lampPin, LOW);
}
  

Висновок

Цикл do...while зручний у ситуаціях, коли потрібно мінімум одне виконання блоку коду перед перевіркою умови. Він особливо корисний для введення даних, підтверджень і повторюваних меню.

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

<< Проекти << Усі товари >> Статті, уроки >>

Написати відгук

Примітка: HTML размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Модуль стабілізатора напруги 3,3 В

Модуль стабілізатора напруги 3,3 В

Модуль призначений для живлення різних електронних пристроїв, модулів, що працюють від напруги 3,3 В..

18.61грн.

Ковпачок на змінний резистор 6мм

Ковпачок на змінний резистор 6мм

Чорно-білий декоративний ковпачок для змінних резисторів та енкодерів з отвором у вигляді зіркиВнутр..

5.63грн.

HX711 — модуль контролера ваги для Arduino

HX711 — модуль контролера ваги для Arduino

HX711 — це спеціалізований модуль для підключення тензометричних датчиків (датчиків ваги) до мікроко..

38.08грн.

ESP32 MQTT клієнт з термопарою K-типу та модулем MAX6675

ESP32 MQTT клієнт з термопарою K-типу та модулем MAX6675

ESP32 MQTT клієнт з термопарою K-типу та модулем MAX6675 У цьому проєкті ми розглянемо, як зібрати ..

Модуль павербанка 4,2В на 2 USB виходи

Модуль павербанка 4,2В на 2 USB виходи

До цього модуля потрібно тільки підключити літій-іонний акумулятор 3,7-4,2В, закрити в корпус і гото..

133.25грн.