реферат Простые операторы. Характеристика форм.docx. Лр операторы и выражения Delphi
Скачать 1.3 Mb.
|
Оператор-селектор caseЛогическим развитием условного оператора if..then стал оператор-селектор case. Основное преимущество case над своим "коллегой" в том, что он обладает большей наглядностью, чем группа операторов if..then. Оператор включает селектор и одну или несколько констант выбора. На роль селектора могут претендовать все типы данных, между которыми существуют отношения порядка (например, целочисленные byte, word, integer) и строковый тип данных. В качестве селектора допустимо применять не только переменную, но и выражение или функцию, но при соблюдении единственного условия — выражение (функция) должно возвращать значение порядкового типа. case <селектор> of <константа1> : <Выражение1>; <константа2> : <Выражение2>; <константа3> : <Выражение3>; else <Выражение4>; end; Оператор case осуществляет проверку на равенство значений селектора и констант оператора. В случае если значение селектора совпадает со значением константы, то выполняется соответствующее константе выражение (листинг 1.9). Листинг 1.9. Пример обращения к оператору case type String866 = type AnsiString(866); var X,Y,Z:real; op:char; begin WriteLn('X='); ReadLn(X); WriteLn(String866('Выбери операцию [+ или - или / или *]')); ReadLn(op); WriteLn('Y='); ReadLn(Y); Case op of '+': Z:=X+Y; '-': Z:=X-Y; '/': if Y<>0 then Z:=X/Y else WriteLn(String866('Ошибка!')); '*': Z:=X*Y; else WriteLn(op,String866(' - недопустимая операция!')); end; WriteLn(X,op,Y,'=',Z); ReadLn; end. Предложенный листинг представляет собой реализацию простейшего калькулятора, осуществляющего одну из основных математических операций над двумя значениями. Обратите внимание на то, как мы защитили программу от вероятной ошибки деления на 0: для этого мы воспользовались помощью условного оператора if..then, разрешающего операцию деления только при условии, если знаменатель не равен нулю. Функционал секции else внутри селектора case аналогичен задачам оператора else в if..then..else. Если селектору не соответствует ни одна из констант, то будет выполнен оператор, следующий за словом else. Если же в конструкции отсутствует ключевое слово else, то выполнению подлежит следующая за оператором строка кода. |