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

Модуль блока живлення 5В 700мА

Мініатюрний безкорпусний трансформаторний блок живлення для любительських проектів.Вхідна напруга 85..

70.15грн.

Роз'ємний конектор під гвинт на плату 2 контакти

Роз'ємний конектор під гвинт на плату 2 контакти

Подвійний роз'ємний гвинтовий конектор без повороту для монтажу на друковану плату.Використовується ..

25.96грн.

Serial Monitor для налагодження скетчів Arduino

Serial Monitor для налагодження скетчів Arduino

Використання Serial Monitor для налагодження скетчів Arduino Вступ Serial Monitor — це в..

Монтажний шилд для NodeMcu ESP8266

Монтажний шилд для NodeMcu ESP8266

Монтажний модуль розширення для WiFi контролера NodeMcu ESP8266Дозволяє виконувати монтаж ..

90.58грн.

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

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

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