Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базовий курс языка C.doc
Скачиваний:
3
Добавлен:
10.11.2018
Размер:
307.2 Кб
Скачать

Тема 4. Управление

Цель: познакомится с инструкциями управления порядком выполнения Си-программы.

4.1 Инструкции, блоки

4.2 Инструкция if-else

4.3 Переключение switch

4.4 Цикл while

4.5 Цикл for

4.6 Операция "," (запятая)

4.7 Цикл do - while

4.8 Инструкция break

4.9 continue

4.10 Переходы и метки

Инструкции управления определяют порядок выполнения вычислений.

Сначала будем рассматривать инструкции структурного программирования, а затем те, которые не являются элементами структурного программирования.

4.1 Инструкции, блоки

<Инструкция>:: = <выражение>;

Пример 1:

/ * Выражения * / / * инструкции * /

х = 0 х = 0;

j + + j + +;

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

4.2 Инструкция if-else

Синтаксис

if (<выражение>) если <водоворот> то

<Инструкция 1> <iнстр1>

else иначе

<Инструкция 2> <iнстр 2>

Семантика

1. вычисление значения <выражение> в;

2. если это значение <> 0, то выполнение <iнструкция 1>

3. иначе выполнение <iнструкция 2>

Пример 2: Разветвление на 2 направления.

int a, b, c; / * входные * / int x; / * результат * /

...

if (a> b) / * вариант * /

if (a> c) x = a

se x = c;

else

if (b> c) x = b

else x = c

/ * Вариант 2 - Ветвление больше, чем на 2 направления * /

...

x = a;

if (b> x) x = b; if (c> x) x = c

 

4.3 Переключение switch

Синтаксис

switch (<выражение>)

{Case <конструкция выражение 1>;

<Инструкция 1>

.......

case <конструкция выражение n>

<Инструкция n>

default: <инструкция>

}

Семантика

• Вычисляем значение <выражения>.

• Оно последовательно сравнивается с конструкцией выражений, записанных по ветвях case /

• Если выражение совпадает с какой-либо из ветвей, начинают выполнятся инструкции этой ветки, а потом инструкции всех ветвей, содержащаяся по этой.

• Конструкции, которые записываются после case, являются ветвями; это означает, что передаются управления на инструкции, записанные после этой метки.

• Если выражение не совпадает ни с одним выражением, то выполняется ветка default.

• Если ветви default нет, то switch ничего не делает.

• ветви case и ветка default могут содержится в произвольном порядке.

• Если после выбора одной из ветвей необходимо завершение выполнения переключателя, в этой гiлци последней конструкцией записывается инструкция break.

Все другие ветви не выполняются.

Пример 3: Сформировать у зминнiй kd количество дней месяца j (вариант 1)

if (j = = 1 | | j = = 3 | | j = = 5 | | j = = 7 | | j == 8 | |

j = = 10 | | j = = 12) kd = 31

else

if (i = = 2) kd = 28

else kd = 30;

Пример 4: Сформировать у зминнiй kd количество дней месяца j (вариант 2)

switch (j)

{Case 1: kd = 31: break;

case 2: kd = 28: break;

case 3: kd = 31: break;

........

case 12: kd = 31: break;

default: printf ("Ошибка"); break;

}

Пример 5: Сформировать у зминнiй kd количество дней месяца j (вариант 3)

switch (j)

{Case 1: case 3: case 5: case 7: case 8:

case 10: case 12: kd = 31: break;

case 4: case 6: case 9: case 11: kd = 30: break;

default: if (j = = 2) kd = 28;

else printf ("Ошибка");

break;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]