
Структура повторения do/while
Цикл do-while – единственный цикл, который всегда выполняет итерацию хотя бы один раз. |
Общая форма записи цикла do/while :
do {
оператор(ы);
}
while (условие); // пока условие выполняется
Если при выполнении цикла повторяется только один оператор, то фигурные скобки можно опустить, хотя они вносят в этот оператор определенную ясность.
Пример
int num;
do
{
puts(“Input number”);
scanf(“%d=?”,&num);
}
while (num != 100); // если будет введено число 100 цикл
// закончится
Пример
#include <ctype.h> // обязательна!!!
…..
char ch;
int digits=0;
do
{ ch=getch(); // чтение символа
printf("%c",ch); // отображение на экране
if (isdigit(ch)) digits++;// проверка,является символ цифрой
}
while(ch !='n');
printf("\n%d=" ,digits);
Символьные функции библиотеки ctype
if(ch>=’a’ &&ch<=’z’) || (ch>’A’ &&ch<=’Z’) –
Функция |
проверка является ли символ: |
isalpha(ch) |
буквой |
isalnum(ch) |
алфавитно-цифровым символом |
iscntrl(ch) |
управляющим символом |
isdigit(ch) |
цифрой |
islower(ch) |
буквой нижнего регистра |
ispunct(ch) |
символом пунктуации |
ch=toupper(ch) |
нижнего регистра. Если да, то возвращает символ верхнего регистра для латиницы |
ch=tolower(ch) |
верхнего регистра. Если да, то возвращает символ нижнего регистра для латиницы |
Инструкция goto
for (…) {
for(…) {
while (…) {
if (…) goto stop;
…
}
}
}
stop:
printf(“Выход из программы”);
Оператор continue
Оператор continue используется для пропуска оставшихся операторов в теле цикла и передает управление на следующую итерацию, которая начинается с вычисления условного выражения.
int i;
for (i=1;i<1000;i++)
{
if (i%7) continue; // если делится нацело без остатка, то пропускается
// оператор printf
printf(“%8d”,i);
}
Инструкция break
Используется для выхода из циклов do, for и while в
обход обычного условия выхода из цикла. Действует только в пределах своего цикла
int i;
for (t=0;t<100;t++)
{
if (t= =10) break;
printf(“%d”,t);
}
-
--------------------------------------------------
int t,count;
for (t=0;t<100;t++)
{
count=0;
for (;;)
{
printf(“%d\n”,count);
count++;
if (count= =10) break;
}
}
При каждом выполнении инструкции break управление передается во внешний цикл.
Задачи
Определить время года по номеру месяца.
Определить стоимость междугородного телефонного разговора. Ввод количества минут и кода направления