Показано с 1 по 10 из 606

Тема: Создать функцию на ST

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,070

    По умолчанию

    Цитата Сообщение от Andrey G Посмотреть сообщение
    Поддержка отписала что проблема действительно в компиляторе и ее когда-нибудь починят.
    TRUE для repeat это выход из цикла (это про то, что тут нет бесконечных циклов до которых доколебались)

    А так, видимо exit здесь мастерили сишники)) Описанные симптомы располагают
    Последний раз редактировалось Валенок; 20.09.2022 в 19:02.

  2. #2

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    TRUE для repeat это выход из цикла (это про то, что тут нет бесконечных циклов до которых доколебались)

    А так, видимо exit здесь мастерили сишники)) Описанные симптомы располагают
    Респект вам что код посмотрели ) Я так то про exit спрашивал но почему то дискуссия в сторону циклов ушла и советов как мне писать автомат.

    repeat с безусловным выходом использую чтобы выскочить из case вызвав там exit. Я вообще думал это стандартная конструкция для ST, странно что такой ажиотаж вокруг нее.

  3. #3

    По умолчанию

    Цитата Сообщение от Andrey G Посмотреть сообщение
    Респект вам что код посмотрели ) Я так то про exit спрашивал но почему то дискуссия в сторону циклов ушла и советов как мне писать автомат.

    repeat с безусловным выходом использую чтобы выскочить из case вызвав там exit. Я вообще думал это стандартная конструкция для ST, странно что такой ажиотаж вокруг нее.
    оператор CASE в ST:

    "CASE
    Аналогичен switch в C. Альтернативные ветки не имеют закрывающей программной скобки
    и не могут выполняться одна за другой. Соответственно оператор break не имеет смысла и
    отсутствует. "

    в справке ОЛ по CASE тоже ни exit ни repeat не упоминаются

  4. #4

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    оператор CASE в ST:

    "CASE
    Аналогичен switch в C. Альтернативные ветки не имеют закрывающей программной скобки
    и не могут выполняться одна за другой. Соответственно оператор break не имеет смысла и
    отсутствует. "

    в справке ОЛ по CASE тоже ни exit ни repeat не упоминаются
    break; в СИ так же удобно использовать если вам не нужно выполнять всю ветку.
    например если у вас в ветке несколько проверок перед выполнением остального кода. Тогда у Вас есть вариант поместить код который должен выполнится под условие

    Код:
    case 1:
      if (условие)
      {
         код;
      }
      break;
    Когда условий много, вложенность if становится большой.

    Код:
    case 1:
      if (условие1)
      {
         if (условие2)
        {
           if (условие3)
           {
              код;
           }
         }
       }
       break;

    В таком случае бывает удобно записать так:
    Код:
    case 1:
      if (!условие1) break;
      if (!условие2) break;
      if (!условие3) break;
         
      код;
      break;

Похожие темы

  1. Ответов: 14
    Последнее сообщение: 01.07.2023, 21:30
  2. Ответов: 6
    Последнее сообщение: 22.12.2021, 10:50
  3. Ответов: 3
    Последнее сообщение: 13.09.2021, 13:31
  4. ПЛК160. Чем заменить функцию записи 0x05?
    от FallenDAY в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 26.08.2017, 13:19
  5. Как написать собственную функцию wait()
    от PavelKazakov в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 23.07.2009, 11:37

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •