Загрузка...

Операторы безусловных переходов


а) Оператор goto метка. В языках Бейсик и Фортран этот оператор является очень важным. В отличии от них в СИ рекомендуется его использовать как можно реже или не использовать совсем (т.к. в СИ это можно осуществить более удобными способами). Осуществляет переход на любую точку программы вверх и вниз. Имя метки задается согласно правилам создания идентификатора (как и переменной). За именем метки должно стоять двоеточие, после чего следует оператор.
goto m1;

m1:
оператор;
б) Оператор break. Служит для досрочного выхода из цикла. Применяется в любых циклах. В случае вложенных циклов осуществляет выход только из внутреннего цикла.
while (условное выражение1) {

if(условное выражение2)
break;

}
В СИ без этого оператора тоже можно обходиться. Например:
}
while((ch = getchar())!=EOF)
{
if (ch==’\n’)
break;
putchar (ch);
}
Этот цикл реализует печать символов и завершается при чтении либо признака EOF, либо символа «новая строка». Это же можно было выполнить так:
while((ch = getchar())!=EOF && ch==’\n’)
putchar (ch);

в) Оператор continue. Служит для пропуска группы операторов и выхода на начало цикла (оставшаяся часть итерации пропускается и происходит переход к началу следующей).
for(i=0; i<10; i++) {

if(условное выражение2)
continue;

}
Заменим в нашем примере break на continue
while((ch = getchar())!=EOF)
{
if (ch= =’/n’)
continue;
putchar (ch);
}
В примере с break работа цикла полностью прекращается при вводе символа «новая строка». А в этом примере символы «новая строка» просто пропускаются, выход из цикла будет только при наличии признака EOF.

Загрузка...