delphi — Есть ли другой способ сделать этот оператор case без использования -MAXINT?
Задай вопрос
спросил
Изменено 9 лет, 3 месяца назад
Просмотрено 422 раза
У меня есть оператор case, который оценивает целое число (результат функции) для кода результата, например:
R:= DoSomething;
случай R
0: начать
//Успех
конец;
1..99: начало
//Конкретные сообщения о результатах
конец;
100..199: начало
//Другие конкретные сообщения о результатах
конец;
-МАКСИНТ..-1: начать
//Отказ
конец;
конец;
В случае сбоя возвращается отрицательное число, представляющее код ошибки. DoSomething — это просто любая функция, которая возвращает целое число в качестве кода ответа (или кода ошибки, если оно отрицательное).
Мне интересно, есть ли другой способ написать -MAXINT..-1 . Что-то более похожее на «Все что угодно -1 и ниже». Я попробовал <=-1 , но компилятору это не слишком понравилось.
Есть ли способ сделать это в операторе case?
- delphi
- оператор переключения
13
Используйте блок else для всех необработанных результатов и в этом блоке различайте неудачное выполнение и успешное выполнение, для которого у вас нет явного обработчика пример кода).
Р:= Сделать Что-нибудь;
случай R
0: начать
//Успех
конец;
1: начать
// Еще один успех
конец
иначе начни
если R > = 0, то
// Необработанная ошибка успешного выполнения
еще
//Отказ
конец;
конец;
5
Вы пытаетесь форсировать строгий случай , где вместо этого следует использовать комбинацию if и case :
если R = 0 то
// Успех
еще
если R < 0, то
// Отказ
еще
начало // Положительные значения
случай R
1.
.99: ...
100..199: ...
// Другие ожидаемые значения
еще
// Неожиданное положительное значение
конец;
конец;
Лично я бы отформатировал приведенное выше, чтобы сделать поток более понятным, но это мое личное предпочтение:
если R = 0, то
// Успех
иначе, если R < 0, то
// Отказ
еще
начало // Положительные значения
случай R
1..99: ...
100..199: ...
// Другие ожидаемые значения
еще
// Неожиданное положительное значение
конец;
конец;
Или еще лучше (как упоминал Ларри в комментарии к моему ответу, но, как ни странно, не в своем):
, если R < 0, то
// Отказ
еще
начинать
случай R
0: // успех
1..99: // Ожидаемые положительные значения
100..199:
еще
// Неожиданные положительные результаты
конец;
конец;
2
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Судья выдает кляп по делу об убийствах в Дельфи - WISH-TV | Новости Индианаполиса | Погода в Индиане
перейти к содержанию Авторы: Эшли Фаулер и Ричард Эссекс Судья в пятницу издал временный приказ о неразглашении информации по уголовному делу против подозреваемого в убийстве Делфи Ричарда Аллена.
Аллену, 50 лет, предъявлено обвинение по двум пунктам обвинения в убийстве
Приказ, изданный судьей Фрэнсис Галл, запрещает прокурорам, защите, полиции и членам семьи публично говорить о деле до слушания 13 января . Именно тогда Гулл услышит аргументы о продлении запрета на кляп, а также аргументы по поводу запроса адвокатов Аллена о переносе судебного разбирательства из округа Кэрролл .
Приказ о неразглашении информации был издан менее чем через 24 часа после того, как адвокаты Аллена опубликовали трехстраничный пресс-релиз, в котором подвергли критике доказательства, представленные в заявлении о предполагаемой причине. Адвокаты Аллена утверждают, что их клиент невиновен , и заявили в четверг, что он «сбит с толку» выдвинутыми против него обвинениями.
В пресс-релизе адвокаты Аллена, в частности, заявили: «В следующий раз Рик получил известие от полиции в октябре 2022 года. Это произошло примерно за две недели до оспариваемых выборов шерифа и через несколько дней после подачи федерального иска против шерифа округа Кэрролл. Управление его бывшим заместителем, Майклом Томасом.
В федеральном иске Майкл Томас, заместитель шерифа округа Кэрролл, заявляет, что шериф Тоби Лизенби нарушает конституционные права Томаса на свободу слова и надлежащую правовую процедуру. Он утверждает, что Лизенби не одобрял выдвижение Томаса на пост шерифа отчасти потому, что Томас внес предложения и предложил помощь в расследовании «громкого расследования убийства ребенка», которое было отклонено и чего Лизенби и другие сотрудники офиса шерифа округа Кэрролл опасались. станет достоянием гласности в результате кампании или потенциального избрания Томаса.
Томас проиграл кандидатуру шерифа на майских республиканских праймериз. После первичных выборов Томас был назначен в отдел по контролю за животными, по сути, став окружным ловцом собак.
.99: ...
100..199: ...
// Другие ожидаемые значения
еще
// Неожиданное положительное значение
конец;
конец;