Задача:
Бывает, что вместо оператора if удобнее использовать оператор case. Обычно это случается, если переменная по условию задачи может принимать ограниченный диапазон значений или только конкретные значения. Текущее значение переменной (селектора) сравнивается со значениями-случаями, перечисленными в теле оператора case. Если значение селектора совпадает с каким-либо значением в операторе case, то выполняется ветка, относящаяся к данному случаю.
В задаче ниже в конструкции case сравнивается значение переменной ch с различными диапазонами значений. В случае совпадения, выводится соответствующая надпись.
Программа на языке Паскаль (в программе допущена ошибка):
var ch: char; begin write ('Введите символ: '); readln (ch); case c of '0'..'9': write ('Это число'); 'a'..'z','A'..'Z': write ('Это английская буква'); 'а'..'я','А'..'Я': write ('Это русская буква') end; readln end.
Примечания:
Запись типа ‘a’..’z’ включает диапазон значений от символа ‘a’ до символа ‘z’ включительно.
Повторение. Решение задач (операторы if...else, case):
Пусть достаточно будет определить, является ли число однозначным, двухначным или трехзначным и более.
Алгоритм решения задачи: