if-else

advertisement
Лекция №3
Ветвления
Инструкции и выражения
Выражение становится инструкцией, если в конце его
поставить точку с запятой.
Выражения:
a = b + c, i++, printf(...), a + (b = c)
Инструкции:
a = b + c;
i++;
printf(…);
a + (b = c);
Составные инструкции (блоки)
Фигурные скобки { и } используются для объединения
объявлений и инструкций в составную инструкцию,
или блок .
Пример:
void main()
{
…
}
Конструкция if-else
Инструкция if-else
используется для принятия
решения.
Да
Синтаксис:
if (<выражение>)
<инструкция1>
else
<инструкция2>
Выражение
Инструкция1
Нет
Инструкция2
Конструкция if-else
Пример №1
if (а > b)
z = a;
else
z = b;
Пример №2
if (a > b)
z = a;
Пример №3
if (a - b != 0)
c = a;
Пример №4
if (a - b)
c = a;
Вложенные конструкции
Пример №1
if (n > 0)
if (а > b)
z = a;
else
z = b;
Пример №3
if (n > 0)
if (а >
z =
else
z =
}
{
b)
a;
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 <конст-выр>: инструкции
case <конст-выр>: инструкции
default: инструкции
}
Конструкция switch
Пример:
n=3
Результат выполнения программы:
switch (n) {
Дней в месяце: 31
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);
Конструкция switch
Пример:
n=3
Результат выполнения программы:
switch (n) {
Дней в месяце: 0
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);
Конструкция 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> : <выражение 2>
Пример №1:
z = a > b ? a : b;
Эквивалентная примеру №1 if-else конструкция:
if (a > b) z = a; else z = 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”);
Download