Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабник по C.pdf
Скачиваний:
74
Добавлен:
01.06.2015
Размер:
876.9 Кб
Скачать

– 17 –

while(( ch=getchar())!='\n' ) putchar(ch);

for( выражение1; выражение2; выражение3 ) оператор;

Выражение1 определяет инициализацию параметра цикла, выражение2 (целое) – проверку условия окончания, выражение3 обеспечивает наращивание параметра.

Пример: подсчитать количество пробелов в символьной строке, состоящей из 10 симво-

лов.

for( i=0; i<10; i++ ) if( string[i] == " " )

count++;

Любое из трех выражений может быть пропущено(символ «;» должен остаться): for(;;); – бесконечный цикл.

В качестве выражения в заголовке цикла могут быть использованы любые выражения или функции.

Примеры:

for(i=0;string[i]!=’\0’;i++);/*пока в массиве не встретится символьный ноль*/ for(putchar(’a’); putchar(’b’); putchar(’c’) )

putchar(’d’);

На экран выводится бесконечная строка: abdcbdcbdcbdcbdc ...

В заголовке цикла можно использовать операцию «запятая» . Выражения, записанные через запятую, вычисляются последовательно слева направо.

Пример: перестановка символов в строке по типу: 1-ый – последний; 2-ой – предпоследний и т.д.

char s[10], с; int i, j; gets (s);

for ( i=0, j=9; i<j; i++, j-- ){ c=s[i]; s[i]=s[j]; s[j]=c; }

Операторы циклов могут быть вложенными. Пример вложенных циклов:

for ( i=0,j=9; i<j; i++, j-- )

for ( ii=0,ij=9; ii<ij; ii++, ij-- )

4.6. ОПЕРАТОРЫ ПЕРЕХОДА

break;

Прерывает выполнение циклов do, while, for. Управление передаётся следующему за циклом оператору. Если прерывание произошло внутри цикла, то управление передаётся ближайшему внешнему оператору.

Пример: подсчитать количество символов, вводимых с клавиатуры; конец ввода – нажатие клавиши «Enter». Если вводится не буква, то ввод прекращается.

count=0;

while((ch=getchar( ))!=’\n’){ if(!(isalpha(ch)){

//isalpha - возвращает истину, если аргумент-буква латинского алфавита puts(”При вводе встретилась не буква”);

© 1998 Калачев Д.П., Лутай В.Н.

– 18 –

break;

}

count++;

}

printf(”Кол-во введённых букв %d”, count);

switch

switch ( выражение ){ case константа_1:

оператор_1; break;

...

case константа_n: оператор_n; break;

default:

оператор_n+1; break;

}

Определяет вариант продолжения программы. Управление передаётся оператору, перед которым записана константа, являющаяся значением выражения в заголовке switch. Если значению выражения не соответствует никакая константа, то управление передаётся на оператор default. Оператор break обеспечивает выполнение только выбранного оператора (может отсутствовать). Константы должны быть целого типа.

Пример: int num;

printf (”Наберите номер телефона, \n а я укажу абонента”); scanf(”%d”, &num );

switch ( num ){

case 01: printf (”Пожарная \n”};break; case 02: printf (”Милиция \n”}; break; case 09: printf (”Cправочная \n”}; break; default :printf (”Вы ошиблись номером \n”);

}

continue;

При использовании в циклах вызывает пропуск записанных за ним операторов тела цик-

ла.

Пример: на экран последовательно выводятся цифры от 0 до 9 за исключением 5. for ( i=0; i<=9; i++){

if ( i==5) continue; printf (”%d”,i);

}

goto метка;

Осуществляет безусловный переход на оператор, имеющий метку. Метка представляет собой идентификатор.

Пример: a=5;

goto m1; b=6;

m1:

c=7;

© 1998 Калачев Д.П., Лутай В.Н.