Оператор continue
Оператор continue — осуществляет прерывание текущей итерации цикла и переход к следующей итерации. При этом все операторы до конца тела цикла пропускаются. В цикле for оператор continueвызывает выполнение операторов приращения и проверки условия цикла. В циклах while и do-while оператор continue передает управление операторам проверки условий цикла. В следующем примере программа подсчитывает количество пробелов в строке, введенной пользователем:
/* Подсчет количества пробелов */#include <stdio.h> int main(void){ char s[80], *str; int space; printf("Введите строку: "); gets(s); str = s; for(space=0; *str; str++) { if(*str != ' ') continue; space++; } printf("%d пробелов\n", space); return 0;}Каждый символ строки сравнивается с пробелом. Если сравниваемый символ не является пробелом, оператор continue передает управление в конец цикла for и выполняется следующая итерация. Если символ является пробелом, значение переменной space увеличивается на 1.
В следующем примере оператор continue применяется для выхода из цикла while путем передачи управления на условие цикла:
void code(void){ char done, ch; done = 0; while(!done) { ch = getchar(); if(ch=='$') { done = 1; continue; } putchar(ch+1); /* печать следующего в алфавитном порядке символа */ }}Функция codeпредназначена для кодирования сообщения путем замены каждого символа символом, код которого на 1 больше кода исходного символа в коде ASCII. Например, символ А заменяется символом В (если это латинские символы.). Функция прекращает работу при вводе символа$. При этом переменной done присваивается значение 1 и оператор continue передает управление на условие цикла, что и прекращает выполнение цикла.
Задача. Ввести натуральное число и найти сумму его цифр. Организовать ввод числа так, что-
бы нельзя было ввести отрицательное число или ноль.
Любая программа должна обеспечивать защиту от неверного ввода данных (иногда такую
защиту называют «защитой от дурака» — fool proof). Поскольку пользователь может вводить
данные неверно сколько угодно раз, то надо использовать цикл с условием. С другой стороны,
один раз обязательно надо ввести число, поэтому нужен цикл с постусловием.
В отличие от предыдущей программы, теперь надо при каждом делении определять оста-
ток (последняя цифра числа равна остатку от деления его на 10) и суммировать все остатки в
специальной переменной.
#include <stdio.h>
#include <conio.h>
Main()
{
int N, sum; // sum - сумма цифр числа
sum = 0; // сначала сумму обнуляем
do { // начало цикла
printf ( "\nВведите натуральное число:" );
scanf ( "%d", &N );
}
while ( N <= 0 ); // условие цикла «пока N <= 0»
while ( N > 0 ) {
sum += N % 10;
N /= 10;
}
printf ( "Сумма цифр этого числа равна %d\n", sum );
Дата добавления: 2015-04-25; просмотров: 829;