Приоритеты и асоциативнiсть операторов.
В таблице:
- Операторы, содержащиеся в одной строке, имеют одинаковый приоритет.
- Строки отсортованi по убыванию приоритета
- Л - выполнение слева направо, П - исполнение справа налево
Тема 4. Управление
Цель: познакомится с инструкциями управления порядком выполнения Си-программы.
Инструкции, блоки
Инструкция if-else
Переключение switch
Цикл while
Цикл for
4.6 Операция "," (запятая)
Цикл do - while
Инструкция break
Continue
Переходы и метки
Инструкции управления определяют порядок выполнения вычислений.
Сначала будем рассматривать инструкции структурного программирования, а затем те, которые не являются элементами структурного программирования.
Инструкции, блоки
<Инструкция>:: = <выражение>;
Пример 1:
/ * Выражения * / / * инструкции * /
х = 0 х = 0;
j + + j + +;
Составная инструкция или блок - последовательность описаний и выполнимых инструкций, заключенных в фигурные скобки.
Инструкция 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
Переключение 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;
}
Цикл While
Синтаксис
while (<выр>)
<Инструкция>
Семантика
while ~ пока
1. Вычисляется значение выражения;
2. Если это выражение отличный от 0, то выполняется инструкция тела цикла;
3. Переход на 1.
4. Если выражение равно 0, то цикл завершается;
5. Если в теле цикла несколько инструкций, то их оформляют как составную инструкцию.
Пример 6: вычисления y = E X с точностью eps .
float y, s, eps, x;
int i, n;
y = 1; n = 1; i = 1; s = x;
while (s / n> eps)
{Y + = s / n;
i + +;
n * = x;
s * = x;
}
Цикл for
Синтаксис
for (<вир1>; <вир2>; <вир3>;)
<Инструкция>
Семантика
<Вир1>;
while (<вир2>)
{<Инструкция>;
<Вир3>;
}
<Вир1> - инициализация
|
|
<Вир2> - условие завершения цикла
<Вир3> - изменение переменной цикла
Каждый из трех выражений может быть отсутствующим, но разделяющие их знаки ';' должны быть.
Пример 7: бесконечный цикл
for (;;)
{...}
Дата добавления: 2020-04-25; просмотров: 56; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!