Лазарус – Case of – простые возможности
Лазарус (Lazarus) – это отличное решение для всех ценителей Делфи (Delphi) и Паскаль (Pascal) подобного программирования. Но для уже Виндоус (Windows) ориентированных решений. Паскаль подобное это значит, например, Фри Паскаль (Free Pascal), Турбо Паскаль (turbo Pascal). И это продолжение про оператор выбора. Удобное и часто используемое решение. Для перебора значений. Как его еще можно использовать. Это начальный уровень. По простому.
Вот когда сам это дело изучал. Я увидел на сайте посвященному Lazarus интересное решение. Это перебор текстовых значений. Тип данных – это строка (String). И мы можем прямо их перебирать. Это очень удобно! А еще чтобы не заморачиваться с верхним и нижним регистром. Можно предварительно строку по которой идет выбор перевести в нижний регистр. Чтобы все буквы там были маленькие. И проверять по значениям, написанными маленькими буквами.
Как вот отличная иллюстрация. Это – выбор операционной
системы. И вывод результата в элемент Мемо (Memo).
Os:='Windows';
case LowerCase(Os) of
'dos': Memo1.Append('dos operating system is selected!');
'windows': Memo1.Append('windows
operating system is selected!');
'mac os':
Memo1.Append('mac os operating
system is selected!');
'unix':
Memo1.Append('unix operating
system is selected!');
else
Memo1.Append('unknown operating system is
selected!');
end;
Очень хорошо, что оператор выбора. Работает и с перечислениями.
Перечисления удобны как константы. Заранее подобранные значения. Список
возможных значений. Как сезоны года. Есть осень, зима, весна и лето. Или
медаль. Бронзовая, серебряная и золотая. Удобно сделать оператор выбора.
type
EMedal=(Gold, Silver, Bronze);
MyMedal:= EMedal.Bronze;
case MyMedal of
Silver: Memo1.Append('You got SILVER medal!');
Bronze: Memo1.Append('You got BRONZE medal!');
Gold:
Memo1.Append('You got GOLD medal!');
else
Memo1.Append('You got NO MEDAL at all!');
end;
Еще интересно что оператор выбора может работать и с
16-ричными числами. Это хитрые такие
числа. Где идет счет не 0-9. А 0-15. Где потом после 0-9 идут буквы латинские – A B C D E F. Чтобы дополнить буквами
счет до 15. И пишутся через символ $.
A:=$A;
case A of
$0: Memo1.Append('Hex 0');
$1..$5: Memo1.Append('Hex [1..5]');
$6: Memo1.Append('Hex is 6');
$7: Memo1.Append('Hex is 7');
$8..$9: Memo1.Append('Hex is [8..19]');
$A..$F: Memo1.Append('Hex is [A..F]');
else Memo1.Append('Hex out of range [0..F]');
end;
И напоследок. Это комбинация разных типов условий. В строку,
в виде диапазона. И так тоже можно писать. Очень гибко все сделано. Можно
написать простое условие в одну строку. Или расписать на несколько строк. Можно
написать много разного выбора. Например диапазон и конкретные значения прямо в
одной строке выбора. И конечно ветка иначе (else). Ты можешь туда писать begin end для порядка. Но это не обязательно.
Можно просто else и куча кода который идет в этой ветке.
A:=15;
case A of
1..10,14,15,16: Memo1.Append('[1-10],14,15,16!');
21..30: Memo1.Append('[21-30]!');
else
Memo1.Append('Out of range [1-30]!');
Memo1.Append('your A is' + IntToStr(A));
end;
Оператор выбора очень полезный. И много чего умеет. Можно
много чего выбирать! И писать самые разные условия. Вот как раз сам изучал. Что
там можно писать. Исследовал некоторые возможности. Чтобы и самому активно это
применять в коде.
Дима Линк делает ретро видеоигры, приложения, немного музыку, пишет истории, и еще некоторое ретро.
ВЕБСАЙТ: http://www.dimalink.tv-games.ru/home_rus.html
БЛОГЕР: https://dimalinkrus.blogspot.com/
МАСТОДОН: https://mastodon.social/@DimaLinkRus




Комментарии
Отправить комментарий