Цикл с постусловием (dowhile)

Структура оператора цикла dowhile описывается синтаксической диаграммой

do Oп while ( W ) ;

«Практикум по программированию на языке C в среде VS C++»


Внутри такого цикла может находиться либо один оператор, либо блок, который будет выполняться один или более раз до получения выражением W значения ноль («ложь»).. Например, такую же таблицу, что и в первом примере с применением опера-тора for, будет выводить следующий фрагмент программы:

i=0; do

{

printf("%10d%8.2f\n",i,sin(3.14/180*i)); i=i+10;

}

while(i<=60);

Существует возможность и досрочного выхода из любого цикла, организованного рассмотренными операторами, либо с помощью оператора безусловного перехода goto (их мы не будем использовать), либо с помощью оператора break.

В теле любого из рассмотренных циклов допускается использовать оператор continue.Его действие сводится к тому,что сразу происходит переход к очередномувыполнению тела цикла (в циклах for с очередным значением параметра), или выход из цикла, если выполнено условие его завершения.

Следующий пример - на использование операторов break и continue

...

#include "conio.h"

. ..

int d,i;

...

d=0;

for (i=1; i<=3; ++i)

{

printf(Ruc("\nВведите перввый символ пароля: "));

if (getch()!= 'a') //getchтребует#include "conio.h"continue;

printf(Ruc("\nВведите второй символ пароля: ")); if (getch() == 'b')

{

«Практикум по программированию на языке C в среде VS C++»


d=1; break;

}

}

if (!d)

{

printf(Ruc("\nОшибка!Работа программы будет завершена.\n")); return0;

}

printf(Ruc("\nВы допущены к работе с программой.\n"));

... //продолжение программы

В этом примере программа предоставляет три попытки ввода пароля из двух сим-волов при запуске в режиме без отладки (Debug\StartWithoutDebugging). Ввод символа выполняется функцией getch(), требующей испоьзования директивы #include"conio.h".Функция возвращает символ нажатой клавиши без его отображения в окнепрограммы. При ошибке ввода первого символа оператором continue происходит пе-реход к очередному выполнению тела цикла – повторному вводу первого символа паро-ля. Если первый символ введён правильно, а второй – нет, то очередная попытка ввода пароля также начинается с ввода первого символа.

Если за три попытки не удалось правильно ввести пароль (переменная d после выхода из цикла сохранила значение 0), то программа выводит сообщение «Ошибка! Работа программы будет завершена.» и завершает работу.

При успешном вводе пароля на любом шаге выполнения тела цикла переменная d получит значение 1, произойдёт выход из цикла по оператору break и пользователь по-

лучит сообщение «Вы допущены к работе с программой.»


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: