- •Язык программирования C
- •Модуль 4. Операторы
- •Операторы (инструкции)
- •Оператор-выражение
- •Составной и пустой операторы
- •Операторы выбора
- •Операторы выбора (продолжение)
- •Операторы выбора (продолжение)
- •Операторы выбора (продолжение)
- •Оператор-переключатель switch
- •Оператор-переключатель switch (продолжение)
- •Операторы цикла
- •Операторы цикла (продолжение)
- •Операторы передачи управления
Модуль 4. Операторы
Составной и пустой операторы
Составной оператор
–Несколько операторов, заключенных в фигурные скобки, образуют составной оператор, который синтаксически эквивалентен единственному оператору.
•Пример:
{ y = x; x++; }
–Точка с запятой (;) после правой фигурной скобки, заканчивающей составной оператор, не ставится.
–Составной оператор может употребляться везде, где допускается простой оператор.
–Составной оператор является блоком и может
содержать описания локальных переменных: swap: { int temp;
temp = x; x = y; y = temp;
Инструкция 1 Инструкция 2
Инструкция N
}
Пустой оператор
;
–Состоит только из точки с запятой, обычно используется для обозначения пустого тела оператора цикла.
5
Модуль 4. Операторы
Операторы выбора
Условный оператор if...else
– Формат оператора:
if (условие)
True (истина) |
|
|
|
False (ложь) |
||
|
|
|
Условие |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
оператор1 |
Ветвь 1 |
|
Ветвь 2 |
|
|
|
|
else
оператор2
–Если проверяемое условие не равно 0 (истина), то выполняется оператор1, иначе - оператор2.
–Часть else в операторе if является необязательной и может быть опущена:
if (условие) оператор
False (ложь)
Условие
True (истина)
Ветвь
6
Модуль 4. Операторы
Операторы выбора (продолжение)
Пример (фрагмент). Подсчет цифровых и нецифровых символов
char ch;
int digit = 0, nondigit = 0;
…
ch = getchar();
if (ch >= '0' && ch <= '9') digit++;
else
nondigit++;
Пример (фрагмент). Перевод строчной латинской буквы в соответствующую прописную (с нижнего регистра на верхний).
char ch;
if ((ch = getchar()) >= 'a' && ch <= 'z') ch += 'A‘ - 'a';
7
Модуль 4. Операторы
Операторы выбора (продолжение)
Если часть с else опущена, то во вложенных условных операторах возникает неясность:
if (n > 0)
if (a > b) z = a;
else
z = b;
–Компилятор решает ее путем отнесения else к ближайшему оператору if,
не имеющего своего else.
if (n > 0)
if (a > b) z = a;
else
z = b;
Т.е. else относится к внутреннему, а не к наружному if.
Если необходимо соотнести его с внешним if, следует использовать фигурные скобки:
if (n > 0)
{
if (a > b) z = a;
}
else
z = b;
8
