Проблема с Return BAS 26.3.0

Moved Поддержка
  • У меня есть 3 функции

    Функция1, Функция2, Функция3

    Функция1 вызывает Функцию2, а Функция2 вызывает Функцию3

    В Функции3 при выполнении определенных условий у меня стоит Return;
    И почему то, Return который срабатывает в Функции3 завершает сразу и Функцию3 и Функцию2 и возвращается в Функцию1

    Хотя у меня в Функции2, есть логика которая должна продолжить выполняться дальше
    Не понимаю в чем проблема, сначала подумал что у меня проблема в логике и что дальше просто нечему выполняться и из за этого происходит возврат сразу в Функцию1, но нет, там все верно и логика должна продолжиться в Функции2.

    И еще не понимаю почему Return, при выполнении скрипта по шагам (Выполнять по 1 действию, кликая на кнопку) не отрабатывает, то есть он не и не переходит к Функции2 в которой была запущена Функция3

  • @anarbus возможно вы используете метки для перехода между функций

  • @anarbus Я думаю, у вас проблема в логике, и, возможно, она просто неправильно отрабатывает вызов функций. Если возможно, загрузите пример скрипта. Так будет легче помочь вам и понять, что у вас происходит.

  • FoxF Fox moved this topic from Поддержка on
  • @UserTrue Да, я использую метки внутри функций, и функции вызываются внутри этих меток но переход к меткам так же завязан на логике.

    Допустим:

    Начало метки1:
    Какая то логика....
    Какая то логика....
    Какая то логика....

    Вызов функции (В ней выполнился Return)
    По логике выполнение должно перейти СЮДА (По факту, он прерывает и текущую функцию)

    Какая то логика....
    Какая то логика....
    Какая то логика....
    Какая то логика....
    if (value > 0) {
    Переход к метки1
    } else {}

  • @anarbus said in Проблема с Return BAS 26.3.0:

    @UserTrue Да, я использую метки внутри функций, и функции вызываются внутри этих меток но переход к меткам так же завязан на логике.

    Допустим:

    Начало метки1:
    Какая то логика....
    Какая то логика....
    Какая то логика....

    Вызов функции (В ней выполнился Return)
    По логике выполнение должно перейти СЮДА (По факту, он прерывает и текущую функцию)

    Какая то логика....
    Какая то логика....
    Какая то логика....
    Какая то логика....
    if (value > 0) {
    Переход к метки1
    } else {}

    Нельзя переходить между функциями с помощью меток, return работать не будет