Оператор do - цикъл с постусловие
Оператор do се ползва за формиране на цикъл с постусловие do while - първо се изпълнява вложеният оператор в тялото на този цикъл и едва след това се извършва проверка дали се продължава итеративния процес.
Описание: оператор do има следния синтаксис: do {<оператор>} while (<условие>); като обикновено <оператор> е съставен оператор.Семантиката на този вид цикъл е следната: след ключовата дума do се изпълнява съставният оператор в тялото на цикъла, изчислява се изразът, зададен чрез <условие> (подобно на if), и докато неговата стойност е истина се изпълнява отново съставният оператор в този цикъл.
Това се повтаря, докато стойността на условието престане да бъде истина (стойност, равна на нула). Съставният оператор в този цикъл винаги се изпълнява поне веднъж, дори ако още при първото изчисление на <условие> се получи стойност 0 (лъжа).
В тялото на цикъл do while може да се съдържа един или повече цикъла for, while, do while.
цикъл do while - извеждане на цифрите 0..9
Преобладаващият брой примери за илюстриране действие на цикъл съдържа извеждане на позната последователност. Следващият пример извежда на екрана всички едноцифрени естествени числа - цифрите 0..9 чрез цикъл do while:
цикъл do while за проверка по вход
Разглежданият цикъл с постусловие do while се изпълнява задължително поне веднъж. Тази негова собеност го прави предпочитано средство за контрол на въвежданите данни. Нека разгледаме следната задача за проверка на въвежданите данни:
Намерете число N, което при делене на M се получава частно P и остатък O. Числата O,M,P,O са естествени.Така поставената задача се решава с един единствен ред: M=N*P+O, но само ако са въведени коректни данни.
В случая изискването е остатъкът да е по-малък от въведената стойност за делител. Реално в самото постусловие се извършва дали във въведените данни остатъкът е по голям от делителя. В тялото на цикъла има само оператори за извеждане на съобщение и въвеждане стойност на данни. Проверката за условие на валидност на въвежданите данни е и условие за продължаване на този цикъл.
Следващата примерна програма илюстрира идеята за проверка по вход чрез цикъл do while:
цикъл do while - съставно условие
В цикъл с постусловие може да се използва съставно условие за проверка - аналогията с оператор if за проверка на условие е пълна. Нека разгледаме следната задача за проверка на въвежданите данни чрез съставно условие: Търсим две последователни четни естествени числа, за които е въведена разликата от техните квадрати - също естествено число. Търсим тези числа.
АлгоритъмРазглеждаме уравнението (N+2)*(N+2) – N*N = R
N*N + 4*N + 4 - N*N = R
N = (R-4)/4
Трябва едновременно да се проверява за изпълнение на условие:
R да е кратно на 4, както и R>4
Следващата примерна програма илюстрира идеята за проверка на съставно по вход чрез цикъл do while
Задачи с подобни функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени примери.