Приоритеты и асоциативнiсть операторов.



В таблице:

  1. Операторы, содержащиеся в одной строке, имеют одинаковый приоритет.
  2. Строки отсортованi по убыванию приоритета
  3. Л - выполнение слева направо, П - исполнение справа налево

Тема 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!