Итак, я просто пытаюсь написать простой сценарий.

Loop
    Exit Loop If [$c = 100]
    Set Variable [$c; Value:1]
    Perform Script ["Import WS Keys 1X"]
    Set Variable [$c; Value:$c + 1]
End Loop

Почему цикл не заканчивается после 100 раз?

0
humanitiesclinic 8 Янв 2017 в 13:42
1
Я не знаю, что такое filemaker, но у вас есть Set Variable [$c; Value:1] внутри вашего цикла. Разве это не сбрасывает $c на 1 каждый раз?
 – 
melpomene
8 Янв 2017 в 13:45

2 ответа

+1 @ michael.hor257k

Если вы хотите, чтобы в цикле было сто итераций, вы должны взять оператор set переменной вне цикла (точнее, следующий код даст вам 99 итераций):

Set Variable [$c; Value:1]
Loop
   Exit Loop If [$c = 100]
   Perform Script ["Import WS Keys 1X"]
   Set Variable [$c; Value:$c + 1]
End Loop
1
Nicolai Kant 9 Янв 2017 в 19:54
1
Нет необходимости "инициализировать" переменную: Set Variable [$c; Value:$c + 1] установит значение переменной в 1, если она не существует.
 – 
michael.hor257k
9 Янв 2017 в 20:00
Конечно! Мне просто удалось неправильно прочитать ваш пример кода. Действительно, вам не нужно инициализировать переменную, и ваш образец также выполняет 100 циклов.
 – 
Nicolai Kant
9 Янв 2017 в 20:32

Попробуйте вместо этого так:

Loop
  Set Variable [$c; Value:$c + 1]
  Exit Loop If [$c > 100]
  Perform Script ["Import WS Keys 1X"]
End Loop

То, что у вас сейчас есть, меняет значение $ c от 1 до 2 и обратно:

Loop
    Exit Loop If [$c = 100]
    Set Variable [$c; Value:1]
    # THE VALUE OF $c IS 1
    Perform Script ["Import WS Keys 1X"]
    Set Variable [$c; Value:$c + 1]
    # THE VALUE OF $c IS 2
End Loop
1
Chuck 10 Янв 2017 в 19:13