Книга: Язык Си - руководство для начинающих
Резюме: переходы в программах
Резюме: переходы в программах
I. Ключевые слова: break, continue, goto
II. Общие замечания
Выполнение каждого из этих трех операторов языка вызывает скачкообразное изменение процесса выполнения программы, т. е. переход от одной команды программы к другой (не следующий за ней непосредственно).
III. break
Оператор break можно использовать внутри любой из трех форм цикла и конструкции switch. Его выполнение приводит к тому, что управление программой, минуя оставшуюся часть тела цикла или конструкцию switch, содержащую данный оператор, передается на следующую (за этим циклом или за конструкцией switch) команду.
Пример:
switch(number)
{
case 4: printf(" Этохорошийвыбор.n");
break;
case 5: printf(" Это неплохой выбор.n");
break;
default: рrintf(" Это плохой выбор.n");
}
IV. Continue
Оператор continue может использоваться в любой из трех форм циклов, но нe в операторе switch. Его выполнение приводит к такому изменению логики программы, что остальные операторы тела цикла пропускаются. Для циклов while или for вслед за этим начинается новый шаг, а для цикла do while проверяется условие на выходе, и затем, если оно оказывается истинным, выполняется следующая итерация.
Пример
while((ch = gctchar( ))!= EOF)
{
if(ch == ' ') continue;
putchar(ch);
chcount++;
}
В этом фрагменте осуществляется эхо-печать читаемых символов и подсчитывается число символов, отличных от пробела.
V. goto
Выполнение оператора goto вызывает передачу управления в программе оператору, помеченному указанной меткой. Для отделения оператора от соответствующей ему метки используется двоеточие. Имена меток образуются но тем же правилам, что и имена переменных. Помеченный оператор может появиться в программе текстуально до или после goto.
Форма:
goto метка;
...метка: оператор
Пример
toр : ch = getchar( );
...
if (ch != 'y')
goto top;