Всем доброго времени суток! Оператор switch переводится как переключение. Оператор switch предлагает множественный выбор. Это своего рода if, но с одним выжным отличием. рассмотрим на примере:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include int main () { int a=5; switch (a) { case 1: printf ("1\n"); break; case 2: printf ("2\n"); break; case 3: printf ("3\n"); break; case 4: printf ("4\n"); break; case 5: printf ("5\n"); break; } return 0; } |
Результат:
5
Рассмотрим каждый шаг выполнения программы с четвертой строки:
- Присваиваем переменной a значение 5.
- В пятой строке объявляем оператор switch.
- В шестой строке если a будет равно еденице, то будет выполнена седьмая строка. (иначе седьмая и восьмая строка пропускается)
- В восьмой строке завершаем работу оператором break.
- В девятой строке, если а будет равным двум, то будет выполнена десятая строка.
- И так до конца программы, пока не будет найдено истинное значение.
Если в нашей программе переменной а присвоить значение 10, то программа не выведет никакой информации в терминал. Это потому, что все значения ложны. Рассмотрим еще один пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include int main () { int a=10; switch (a) { case 1: printf ("1\n"); break; case 2: printf ("2\n"); break; case 3: printf ("3\n"); break; case 4: printf ("4\n"); break; case 5: printf ("5\n"); break; default: printf ("%d\n", a); } return 0; } |
Результат:
10
В этой программе у нас переменная а равна 10. Когда программа дошла до весемьнадцатой строки и перешла к двадцать первой, она наткнулась на default. default применяется в тех случаех, если ни один из выше предложенных вариантов не походит. Использовать default не обязтельно.
Д/З:
- Напишите программу которая решает квадратное уравнение ax2 + bx + c = 0. a не равно нулю. Значения a, b и c пользователь должен ввести сам вручную.
Обсуждение Д/З на форуме.
Все! Удачи.