Операторы continue, break и return
Наиболее часто встречаются случаи более "мягкого" нарушения структурированной логики выполнения программы, которые нарушают ее "естественный" ход в текущем цикле или функции. Они реализуются операторами continue, break, return, которые рассматриваются как ограниченный вариант goto, а именно:
-continue -переход завершающую часть цикла;
-break -выход из внутреннего цикла;
-return -выход из текущего модуля (функции).
Хотя такие конструкции нарушают "чистоту" подхода, все они имеют достаточно простые структурированные эквиваленты, поэтому их использование все-таки предпочтительнее обычного goto. Рассмотрим пример использования оператора break и его эквивалент:
for (i=0; i<n; i++)
{ if (..a[i]...) break; ... }
if (i==n) A else B
int found;
for (found=0, i=0; i<n && !found; i++)
{ if (..a[i]..) found++; ... }
if (!found) A else B
При отсутствии в массиве элемента с заданным свойством выполняется A, в противном случае -B. Во втором фрагменте используется специальный признак для имитации оператора break.