Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_лекция_Основы_языка_С.doc
Скачиваний:
16
Добавлен:
05.06.2015
Размер:
395.78 Кб
Скачать

Оператор 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 );

getch();

• С помощью оператора break можно досрочно выходить из любых циклов: for, while,

do—while.

• Чтобы досрочно завершить текущий шаг цикла и сразу перейти к следующему шагу, исполь-

зуют оператор continue.

Оператор-выражение

Говоря об операторах, будет уместно добавить несколько слов и о выражениях. Любое выражение, которое заканчивается точкой с запятой, является оператором.Рассмотрим следующие примеры:

func(); /* вызов функции */

a = b+c; /* оператор присваивания */

; /* пустой оператор */

Первый оператор выполняет вызов функции, второй — присваивание.. Последний пример — пустой оператор, не выполняющий никакого действия.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]