C. Тема 1. Раздел 9
.pdfТема 1. Основные сведения о языке. Раздел 9. Ветвления
Операторы условного перехода
Оператор безусловного перехода
Часть 1
Синтаксис
if (выражение) оператор_истинного_выражения
else
оператор_ложного_выражения
Эквивалентные записи
if (выражение)
if (выражение != 0)
Распространённая ошибка
if (выражение = 0)
К какому if относится else? if ( x > 0 )
if( x > y ) z = x;
else
z = y;
Где здесь может быть ошибка? if (x > 0)
for (i = 0; i < n; i++) if (s[i] > 0) {
printf("s[i] > 0"); return(i);
}
else printf("x = 0\n");
Это единственный тернарный оператор языка Си
Синтаксис
x > y ? x : y
Отличие от оператора if
Оператор ?: является выражением, результат которого можно использовать в операции присваивания
Синтаксис
if (выражение_1) оператор_1
else if (выражение_2) оператор_2
else if (выражение_3) оператор_3
else
оператор_невыполненных_условий
Синтаксис
switch (выражение)
{
case значение_1: оператор_1; break;
case значение_2: case значение_3:
оператор_2; break;
default:
оператор_3; break;
}
Пропуск break
Выполнение продолжится на следующем case без проверки его условия
Использование break в default
Не обязательно, но default не обязан быть последним условием
Рекомендуется всегда завершать условие оператором break
Для облегчения обслуживания кода
Для предотвращения возможных ошибок
Вместо break можно использовать return
int i = 3; switch (i)
{
case 0: printf("0\n");
default:
printf("default\n"); case 1:
printf("1\n");
break;
}
Что будет напечатано на экране?
Default 1