Лекция 3 Ветвления
Инструкции и выражения Выражение становится инструкцией, если в конце его поставить точку с запятой. Выражения: a = b + c, i++, printf(...), a + (b = c) Инструкции: a = b + c; i++; printf(…); a + (b = c);
Составные инструкции (блоки) Фигурные скобки { и } используются для объединения объявлений и инструкций в составную инструкцию, или блок. Пример: void main() { … }
Конструкция if-else Инструкция if-else используется для принятия решения. Синтаксис: if ( ) else Выражение Инструкция 1 Инструкция 2 ДаНет
Конструкция if-else Пример 1 if (а > b) z = a; else z = b; Пример 3 if (a - b != 0) c = a; Пример 2 if (a > b) z = a; Пример 4 if (a - b) c = a;
Вложенные конструкции Пример 1 if (n > 0) if (а > b) z = a; else z = b; Пример 3 if (n > 0) { if (а > b) z = a; else z = b; } Пример 2 if (n > 0) { if (а > b) z = a; } else z = b;
Конструкция Else-If Синтаксис: if ( ) else if ( ) else if ( ) else if ( ) else
Конструкция Else-If Пример: if (a > 0) printf("Число положительное\n" ; else if (a < 0) printf("Число отрицательное\n"); else printf("Число равно нулю");
Конструкция switch Конструкция switch используется для выбора одного из многих вариантов. switch ( ) { case : инструкции default: инструкции }
Конструкция switch Пример: switch (n) { case 1: d = 31; break; case 2: d = 28; break; case 3: d = 31; break; … case 11: d = 30; break; case 12: d = 31; break; default: d = 0; /* ошибка! Неверный номер месяца! */ } printf("Дней в месяце: %d\n", d); n=3 Результат выполнения программы: Дней в месяце: 31
Конструкция switch Пример: switch (n) { case 1: d = 31; case 2: d = 28; case 3: d = 31; case 4: d = 30; … case 11: d = 30; case 12: d = 31; default: d = 0; /* ошибка! Неверный номер месяца! */ } printf("Дней в месяце: %d\n", d); n=3 Результат выполнения программы: Дней в месяце: 0
Конструкция switch Пример: switch (n) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: d = 31; break; case 4: case 6: case 9: case 11: d = 30; break; case 2: d = 28; break; default: d = 0; /* ошибка! Неверный номер месяца! */ } printf("Дней в месяце: %d\n", d);
Конструкция switch Пример: float f; … switch (f) { case 0.5: …; break; case 1.5e-2: …; break; }
Конструкция switch Пример: switch (n) { case 1: int a = 0; case 2: { int b = 0; … } break; }
Условная операция Синтаксис: ? : Пример 1: z = a > b ? a : b; Эквивалентная примеру 1 if-else конструкция: if (a > b)z = a; elsez = b; Пример 2 z = (a > b ? a : b) * c;
Безусловный переход Синтаксис goto ; : if (a == 0) goto error; Z = x / a; if (b == 0) goto error; Z = x / b; … error: printf(деление на 0);