C Условные выражения

Введение в условные выражения C: if / else и переключатель

Любой язык программирования предоставляет программистам возможность делать выбор.

Мы хотим сделать X в некоторых случаях и Y в других случаях.

Мы хотим проверять данные и делать выбор в зависимости от состояния этих данных.

C предоставляет нам 2 способа сделать это.

Первый - этоifзаявление, с егоelseпомощник, а второй -switchутверждение.

if

Вifоператор, вы можете проверить, выполняется ли условие, а затем выполнить блок, указанный в фигурных скобках:

int a = 1;

if (a == 1) { /* do something */ }

Вы можете добавитьelseблок для выполнения другого блока, если исходное условие оказывается ложным;

int a = 1;

if (a == 2) { /* do something / } else { / do something else */ }

Остерегайтесь одного распространенного источника ошибок - всегда используйте оператор сравнения==в сравнениях, а не в операторе присваивания=, иначеifусловная проверка всегда будет истинной, если только аргумент не0, например, если вы:

int a = 0;

if (a = 0) { /* never invoked */ }

Почему это происходит? Поскольку условная проверка будет искать логический результат (результат сравнения), а0число всегда приравнивается к ложному значению. Все остальное верно, включая отрицательные числа.

У вас может быть несколькоelseблоков путем объединения несколькихifзаявления:

int a = 1;

if (a == 2) { /* do something / } else if (a == 1) { / do something else / } else { / do something else again */ }

switch

Если вам нужно сделать слишком много блоков if / else / if для выполнения проверки, возможно, потому что вам нужно проверить точное значение переменной, тогдаswitchможет быть вам очень полезно.

Вы можете указать переменную как условие и сериюcaseточки входа для каждого ожидаемого значения:

int a = 1;

switch (a) { case 0: /* do something / break; case 1: / do something else / break; case 2: / do something else */ break; }

Нам нужноbreakключевое слово в конце каждого кейса, чтобы избежать выполнения следующего кейса по окончании предыдущего. Этот «каскадный» эффект может быть полезен в некоторых творческих целях.

В конце вы можете добавить «универсальный» случай с пометкойdefault:

int a = 1;

switch (a) { case 0: /* do something / break; case 1: / do something else / break; case 2: / do something else / break; default: / handle all the other cases */ break; }

Скачать мою бесплатнуюСправочник C


Больше уроков по clang: