Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инфа.docx
Скачиваний:
80
Добавлен:
14.03.2016
Размер:
389.3 Кб
Скачать

Рекомендации по выбору цикла

При выборе цикла необходимо оценить необходимость проверки yсловия  при входе в цикл или по завершении прохождения цикла. Если цикл ориентирован на работу с параметром, который меняется в заданных пределах с заданным шагом, то более предпочтительным является параметрический цикл.

Операторы break и continue

В теле любого цикла можно использовать операторы break и continue. Оператор break позволяет выйти из цикла, не завершая его. Оператор continue позволяет пропустить часть операторов тела цикла и начать новую итерацию.

Пример: Вывести числа от 0 до 99 ниже главной диагонали

#include <stdio.h> #include <stdlib.h> int main() {

  unsigned int i,j;

  for(i=0; i<10; i++) {

    for(j=0; j<10; j++) {

      if(j>i)

        break;

      printf("%2d ",i*10+j);

    }

    printf("\n");

  }

  getchar();

  return 0; }

Результат выполнения программы Пример: Вывести числа от 0 до 99 исключая числа, оканчивающиеся на 5 или 8

#include <stdio.h> #include <stdlib.h> int main() {

  unsigned int i,j;

  for(i=0; i<10; i++) {

    for(j=0; j<10; j++) {

      if((j==8) || (j==5)))

        continue;

      printf("%2d ",i*10+j);

    }

    printf("\n");

  }

  getchar();

  return 0; }

Результат выполнения

При вложенных циклах действия операторов break и continue распространяется только на самую внутреннюю структуру, в которой они содержатся.

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

Общая форма записи

goto метка; . . . метка : операция;

Выполнение оператора goto вызывает передачу управления в программе операции, помеченной меткой. По сути метка является идентификатором адреса операции, которой должно быть передано управление. Для отделения метки от оператора используется двоеточие (:). Метка может располагаться в программе как до оператора goto, так и после . Имена меток образуются по тем же правилам, что и имена переменных.

Пример

#include <stdio.h> int main() {

    int k=5; M1: if(k<0)

      goto M2;

    printf("%d ",k);

    k--;

    goto M1; M2: getchar();

    return 0; }

3.3.1

Оператор breakзавершает выполнение ближайшего внешнего оператораdo,for,switchилиwhile, в котором он находится.Управление передается оператору, который расположен после завершенного оператора.

Синтаксис

оператор-перехода:

break;

Оператор breakчасто используется для завершения обработки блока case, относящегося к операторуswitch.Если внешний оператор итерации или операторswitchотсутствует, создается ошибка.

Если используются вложенные операторы, то breakзавершает выполнение только того оператораdo,for,switchилиwhile, который непосредственно его окружает.Передать управление за пределы вложенной структуры можно при помощи оператораreturnилиgoto.

В следующем примере показано использование оператора break:

Копировать

#include <stdio.h>

int main() {

char c;

for(;;) {

printf_s( "\nPress any key, Q to quit: " );

// Convert to character value

scanf_s("%c", &c);

if (c == 'Q')

break;

}

} // Loop exits only when 'Q' is pressed

3.3.2

Обеспечивает передачу управления управляющему выражению наименьшего внешнего цикла do,forилиwhile.

Синтаксис

Копировать

continue;