Ключевое ?лово

vk

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Железо для умного дома

ТЕМА: interpreter

interpreter 17 Дек 2017 08:32 #20830

  • VladSher
  • VladSher аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 45
  • Спасибо получено: 5
  • Репутация: 0
Есть ли ограничения на количество уровней вложенности оператора IF? Мне показалось что 3 уровня не работают.
Администратор запретил публиковать записи гостям.

interpreter 17 Дек 2017 08:59 #20831

  • Adminhs
  • Adminhs аватар
  • Не в сети
  • Администратор
  • Сообщений: 7195
  • Спасибо получено: 1114
  • Репутация: 194
скрипт будет ждать остановки delay. не перезапустится.

Ограничения вложенности нет, но в некоторых случаях лучше goto использовать - так будет точнее выглядить логика
Основной канал проекта в Telegram t.me/wifi_iot
Администратор запретил публиковать записи гостям.

interpreter 17 Дек 2017 12:08 #20834

  • VladSher
  • VladSher аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 45
  • Спасибо получено: 5
  • Репутация: 0
Adminhs пишет:

Ограничения вложенности нет

Похоже я наступил на вот это:
В условии if секции true другое условие if будет работать как логика "И" (смотрите пример 5 ниже). Используйте goto.

Правильно ли я понимаю что вот, например в таком коде:
01 if(apdsc>1000)
02 if(valget(0)!=5)
03 matrixbr(5)
04 valset(0,5)
05 end
06 else
07 if(valget(0)!=0)
08 matrixbr(0)
09 valset(0,0)
10 end
11 end

При невыполнении любого из условий в строках 1 и 2 будет осуществлен переход по условию else в строке 06?

Нельзя ли пример как выйти из положения если в обеих ветках первого IF нужны еще IF?
Администратор запретил публиковать записи гостям.

interpreter 17 Дек 2017 13:50 #20836

  • SergeiHome
  • SergeiHome аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 64
  • Спасибо получено: 1
  • Репутация: 0
Спасибо, понял.
Если есть ограничение по выводу в одну строку, буду готовить данные в шаблоне заранее.
Администратор запретил публиковать записи гостям.

interpreter 17 Дек 2017 15:33 #20842

  • Adminhs
  • Adminhs аватар
  • Не в сети
  • Администратор
  • Сообщений: 7195
  • Спасибо получено: 1114
  • Репутация: 194
в секции false опция if не работает, вроде про это написано в доке, тут нужно использовать goto.
Основной канал проекта в Telegram t.me/wifi_iot
Администратор запретил публиковать записи гостям.

interpreter 08 Фев 2018 00:12 #21518

  • Geosan
  • Geosan аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 33
  • Спасибо получено: 4
  • Репутация: 1
Подскажите, где тут засада?
Выполняется только первый IF

if(gpioget(12)==1)
sendsms(Temperatura nije minimuma)
goto ee
end
else
resetsms()
goto ee
end
:ee
if(gpioget(4)==1)
printw(Датчик выключен<br>)
end
else
if(gpioget(13)==0)
sendsms(Srabotal datchik dvijenia)
else
resetsms()
end
end
Администратор запретил публиковать записи гостям.
Модераторы: FlyRouter
Время создания страницы: 0.128 секунд

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.