Условные инструкции позволяют изменить ход исполнения программы в зависимости от выбора пользователя или необходимого результата.
Инструкции if-else используются для того, чтобы исполнять те или иные фрагменты кода в зависимости от сложившихся условий. Например, с помощью них может быть реализована проверка нахождения целочисленного значения в заданном диапазоне значений, проверка корректности ввода пароля или же проверка регистра отдельного символа. На самом деле, можно привести огромное множество подобных примеров.
В качестве примера рассмотрим проверку наличия достаточно количества баллов для сдачи экзамена. В частности, здесь осуществляется проверка значения целочисленной переменной result, а именно, его сравнение с заданным значением 40.
if (result >= 40)
printf("Экзамен сданn")
else
printf("Экзамен не сданn")
В том случае, если блоки кода представлены единичными инструкциями, как в примере выше, фигурные скобки и завершающие символы точек с запятыми не обязательны (хотя и желательны). При этом блоки, представленные множеством инструкций, должны в обязательном порядке помещаться в фигурные скобки. Символы точек с запятыми также должны использоваться для разделения инструкций:
if (result >= 40) {
printf("Экзамен сданn");
printf("Поздравляем!n");
} else {
printf("Экзамен не сданn");
printf("Ждем на пересдаче.n");
}
Если вам нужно выполнить определенное действие, например, вывести сообщение, лишь в случае исполнения заданного условия, вы можете просто отбросить необязательную часть инструкции со словом else:
if (balance < 0)
printf("На вашем балансе не осталось средств!n");
С другой стороны, вы также можете осуществлять множество сравнений, к примеру, для установления факта нахождения значения переменной в одном из заданных диапазонов. Для этого достаточно реализовать последовательность условных инструкций, осуществляющую множество сравнений значения переменной с заданными значениями до момента успешного сравнения.
if (result >= 80)
printf("Экзамен сдан, оценка отличноn");
else if (result >= 60)
printf("Экзамен сдан, оценка хорошоn");
else if (result >= 40)
printf("Экзамен сдан, оценка удовлетворительноn");
else
printf("Экзамен не сданn");
Наконец, вам никто не запрещает сравнивать значения сразу нескольких переменных в рамках одной инструкции.
А это пример сравнения значения строковой переменной. Так как в языке C строки представлены массивами символов, мы не можем использовать оператор сравнения напрямую так, как было показано выше. Вместо этого нам придется вызывать специальную функцию strcmp() и сравнивать возвращаемое ею целочисленное значение с 0 (да, нулевое значение указывает на совпадение строк).
Инструкции switch-case предназначены для той же цели, что и инструкции if-else и чаще всего используются тогда, когда нужно сравнить значение целочисленной переменной с множеством заданных значений.
Каждый блок case должен завершаться инструкцией break, так как без нее будет исполняться код из следующих за ним блоков case.
Вывод сообщения в зависимости от значения целочисленной переменной.