Delphi

Case в delphi: Оператор выбора Case | Языки программирования. Delphi. Уроки Delphi.

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 лет, и Либерти «Либби» Герман, 14 лет, недалеко от Дельф в феврале 2017 года. Он был арестован по этому делу 28 октября.

Приказ, изданный судьей Фрэнсис Галл, запрещает прокурорам, защите, полиции и членам семьи публично говорить о деле до слушания 13 января . Именно тогда Гулл услышит аргументы о продлении запрета на кляп, а также аргументы по поводу запроса адвокатов Аллена о переносе судебного разбирательства из округа Кэрролл .

Приказ о неразглашении информации был издан менее чем через 24 часа после того, как адвокаты Аллена опубликовали трехстраничный пресс-релиз, в котором подвергли критике доказательства, представленные в заявлении о предполагаемой причине. Адвокаты Аллена утверждают, что их клиент невиновен , и заявили в четверг, что он «сбит с толку» выдвинутыми против него обвинениями.

В пресс-релизе адвокаты Аллена, в частности, заявили: «В следующий раз Рик получил известие от полиции в октябре 2022 года. Это произошло примерно за две недели до оспариваемых выборов шерифа и через несколько дней после подачи федерального иска против шерифа округа Кэрролл. Управление его бывшим заместителем, Майклом Томасом.

В федеральном иске Майкл Томас, заместитель шерифа округа Кэрролл, заявляет, что шериф Тоби Лизенби нарушает конституционные права Томаса на свободу слова и надлежащую правовую процедуру. Он утверждает, что Лизенби не одобрял выдвижение Томаса на пост шерифа отчасти потому, что Томас внес предложения и предложил помощь в расследовании «громкого расследования убийства ребенка», которое было отклонено и чего Лизенби и другие сотрудники офиса шерифа округа Кэрролл опасались. станет достоянием гласности в результате кампании или потенциального избрания Томаса.

Томас проиграл кандидатуру шерифа на майских республиканских праймериз. После первичных выборов Томас был назначен в отдел по контролю за животными, по сути, став окружным ловцом собак.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *