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

Уроки Arduino константи для початківців

Привіт, друзі! Я радий презентувати вам новий урок під назвою Arduino константи! Конста..

Підключення кнопки до Arduino

Підключення кнопки до Arduino

Спочатку я збирався написати статтю про фільтрацію брязкоту кнопки, що підключена до контролера Ardu..

Тримач для батарейок 3хAA

Тримач для батарейок 3хAA

Бокс для трьох пальчикових батарейок типу ААЗагальна напруга на вихідних дротах бокса вийде 4,5 В..

31.00грн.

Шестерня для зубчатого ременю на 60 зубців під вісь 8 мм

Шестерня для зубчатого ременю на 60 зубців під вісь 8 мм

Використовується для передачі та редукції обертаючого моменту від двигуна до вісі 8 ммКількість зубц..

148.24грн.

Цикли 8 — Оптимізація циклів

Цикли 8 — Оптимізація циклів

Цикли 8 — Оптимізація циклів Вступ Оптимізація циклів в Arduino особливо важлива, коли п..