Цикли 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 размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Набір перетинок (мама-мама) 40шт 10см

Набір перетинок (мама-мама) 40шт 10см

Набір з'єднувальних дротів для поєднання плат контролера з периферією без пайки. Підходять під станд..

76.14грн.

Драйвер A4988. Як використовувати ENABLE, SLEEP та RESET

Драйвер A4988. Як використовувати ENABLE, SLEEP та RESET

Привіт друзі! Давайте обговоримо таке важливе питання під час роботи з драйвером A4988, як піни дозв..

Цифровий датчик температури та вологості DHT11

Цифровий датчик температури та вологості DHT11

Вимірювання відносної вологості в межах 20 ... 90 %Точність вимірювання вологості ± 5,0 %RHВимірюван..

59.29грн.

Інфрачервоний датчик руху HC-SR505

Інфрачервоний датчик руху HC-SR505

Мініатюрний економічний датчик руху.Напруга живлення 4,5 ... 20 ВСтрум спокою < 60 мкАВихідні лог..

76.78грн.

Модуль датчика відстані TCRT5000

Модуль датчика відстані TCRT5000

Модуль для вимірювання відстані за інтенсивністю відбиття інфрачервоного променя від об'єкту.Має дис..

28.30грн.