Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по ОАиП.doc
Скачиваний:
21
Добавлен:
15.04.2019
Размер:
411.14 Кб
Скачать
  1. Оператор выбора альтернатив (переключатель) switch.

Оператор выбора альтернатив (переключатель)

Общий вид оператора:

switch (выражение) {

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

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

...

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

default: оператор(N+1); break; // может отсутствовать

}

Значение вычисленного выражения должно быть целого типа (или символьного, поскольку он автоматически преобразуется в целый). Это целое используется для выбора одного из нескольких операторов, который нужно выполнить. Оператор, следующий за селектирующим выражением состоит из одного или более операторов, перед каждым из которых стоит конструкция:

case константное выражение:

Целочисленное выражение (константа выбора) после вычисления сравни­вается со значениями констант и при совпадении с одной из них выполняется передача управления соответствующему оператору. В случае несовпадения значения выражения с одной из констант происходит переход на метку default, либо, при ее отсутствии, к оператору, следующему за оператором switch.

Управляющий оператор break (разрыв) позволяет организовать выход из оператора switch на первый выполняемый оператор, следующий после данной конструкции (оператор switch).

Пример 1 с использованием оператора break:

void main(void)

{ int i = 2;

switch(i) {

case 1: puts ( "Случай 1. "); break;

case 2: puts ( "Случай 2. "); break;

case 3: puts ( "Случай 3. "); break;

default: puts ( "Случай default. "); break;

}

}

Для того, чтобы выйти из оператора switch в любом месте использовали оператор break, поэтому результатом будет: Случай 2.

Пример 2 (оператор break отсутствует):

void main()

{ int i=2;

switch(i) {

case 1: puts ( "Случай 1. ");

case 2: puts ( "Случай 2. ");

case 3: puts ( "Случай 3. ");

default: puts ( "Случай default. ");

}

}

Так как оператор разрыва отсутствует, результатом будет:

Случай 2.

Случай 3.

Случай default.

  1. Операция ",".

Операция «запятая» чаще всего используется в операторе for. Она позволяет включать в его спецификацию несколько инициализирующих выражений. Предыдущий пример можно записать в виде:

for ( sum=0 , i=1; i<=N; sum+= i , i++) ;

Оператор for имеет следующие возможности:

- можно вести подсчет с помощью символов, а не только чисел:

for (ch = 'a'; ch<='z'; ch++) ... ;

- можно проверить выполнение некоторого произвольного условия:

for (n = 0; s[i]>='0' && s[i]<'9'; i++) ... ;

или:

for (n = 1; n*n*n <=216; n++) ... ;

Первое выражение не обязательно должно инициализировать перемен­ную. Необходимо только помнить, что первое выражение вычисляется только один раз перед тем, как остальные части начнут выполняться.

for (printf(" вводить числа по порядку! \n"); num!=6;)

scanf("%d", & num);

printf(" последнее число - это то, что нужно.\n");

В этом фрагменте первое сообщение выводится на печать один раз, а затем осуществляется прием вводимых чисел, пока не поступит число 6.

Параметры, входящие в выражения, находящиеся в спецификации ци­кла можно изменять при выполнении операций в коде цикла.

Например:

for (n = 1; n<1000; n += delta) ... ;

Параметр delta можно менять в процессе выполнения цикла.

Использование условных выражений позволяет во многих случаях значительно упростить программу. Например:

for (i=0;i<n;i++)

printf("%6d%c",a[i],( (i%10==0) || (i==n-1) ) ? '\n' : ’ ‘);

В этом цикле печатаются n элементов массива а по 10 в строке, разделяя каждый столбец одним пробелом и заканчивая каждую строку (включая последнюю) одним символом перевода строки. Символ перевода строки записывается поле каждого десятого и n-го элементов. За всеми остальными - пробел.

  1. Циклический алгоритм. Оператор с предусловием while.

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

Для организации циклов используются специальные операторы.

Любой цикл состоит из кода цикла, т.е. тех операторов, которые выполняются несколько раз, начальных установок, модификации параметра цикла и проверки условия продолжения выполнения цикла.

Один проход цикла называется итерацией. Проверка условия выполняется на каждой итерации либо до кода цикла (с предусловием), либо после кода цикла (с постусловием).

Перечень разновидностей операторов цикла:

- оператор цикла с предусловием;

- оператор цикла с постусловием;

- оператор цикла с предусловием и коррекцией.