Мы говорили о заявлениях« если и еще для принятия решений». В случаях, когда необходимо проверить больше условий, лучше и удобнее использовать операторы switch, например, операции на калькуляторе. В калькуляторе нам нужно проверить, является ли операция сложением, вычитанием, умножением или делением.
Программа калькулятора
Взгляните на программу калькулятора
Выход
Enter first number: 5 Enter the operator: + Enter second number: 6 5.00 + 6.00 = 11.00
После ввода данных мы сделали оператор переключения.
switch(sign)
Строки, указывающие, что делать в соответствии со значением знаковой переменной, записываются между фигурными скобками оператора switch.
case '+':
Ключевое слово case проверяет значение знака. Если значение совпадает, он выполнит инструкции, написанные после двоеточия. В этом случае, если значение становится «+», код после двоеточия будет выполнен, иначе этого не произойдет.
break;
А как насчет ключевого слова break? Ключевое слово break используется для остановки проверок. Когда выполнение программы достигает «break», она переходит из фигурных скобок оператора switch на следующую строку после фигурных скобок и печатает результат. Поскольку это программа-калькулятор, если первое условие выполнено, нет необходимости проверять второе условие, а если выполнено второе условие, нет необходимости проверять третье условие и далее. Даже если оператор «break» не указан, выполнение программы будет выполняться без каких-либо проблем, если нет условия по умолчанию. Если присутствует условие по умолчанию, будут выполнены операторы после него. Если «перерыв» не используется, программа должна выполнить оставшиеся проверки без какой-либо реальной необходимости. Это просто лишнее. Принцип программирования заключается в том, чтобы по возможности избегать избыточности.
Это все равно, что сказать компьютеру: «Привет, дружище, если у тебя есть условие как истинное, просто не проверяйте другие». Это просто ненужно ».
В случае необходимости проверки и других условий обрыва можно избежать.
default:
По умолчанию всегда будут выполняться операторы после него. Таким образом, если «break» не используется, программа наконец достигнет «default» и выполнит операторы после него, а операторы в вышеуказанных блоках условий выполняться не будут. Если есть «break», когда программа переходит из проверок к следующей строке после фигурных скобок оператора switch, операторы после «default» не будут выполняться.
Примечание. Поскольку после значения по умолчанию больше нет условий для проверки, оператор break не приводится.
А код exit (0), взятый из ‹ stdlib.h ›, просто говорит компьютеру остановить выполнение программы там. Причина остановки программы в том, что мы не хотим отображать результат, если оператор недействителен.
%0.2f
Интересно, что здесь делает 0.2? Как вы знаете,% f - это спецификатор формата для чисел с плавающей запятой. 0,2 означает, что отображаемое число должно иметь только два десятичных знака. Таким образом, если значение равно 2,01234, будет отображаться только 2,01.
Вы могли заметить пробел в символе спецификатор формата.
scanf(" %c", &sign);
Если места нет, программа не будет работать правильно. Причина этого будет объяснена в следующей статье.
Таким образом, вместо написания отдельных операторов if и else для каждого из условий проверки значения «знака», оператор switch более удобен.