
- •1.4.2 Типы и размеры данных в Си
- •1.4.3 Константы
- •1. Целые константы
- •2. Константа действительна
- •3. Символьная константа
- •4. Строчная константа
- •5. Константный выражение
- •Тема 2. Декларации
- •Тема 3. Операторы
- •3.2 Операторы отношений и сравнение на равенство
- •3.5 Операторы присваивания
- •3.5.1 Самый оператор присваивания
- •3.5.2 Другие операторы присваивания Сi
- •3.6 Iнкрементнi и декрементнi операторы
- •Тема 4. Управление
- •4.3 Переключение switch
- •4.4 Цикл While
- •4.5 Цикл for
- •4.6 Операция "," (запятая)
- •4.7 Цикл do - while
- •4.8 Инструкция break
- •4.9 Сontinue
- •4.10 Переходы и метки
- •Тема 5. Указатели и массивы
- •5.1 Указатели
- •5.2 Связь указателей и массивов
- •5.3 Связь между адресной арифметикой и индексированием массивов
- •5.4 Различие между именем массива и указателем (в роли именi массива)
- •5.5 Буквенные указатели
- •5.6 Массивы указателей
- •5.11 Функции проверки свойств символов
- •5.12 Функции преобразования строк
Тема 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;
}