Пример 8. Как использовать переменную для выхода из цикла на JavaScript для iMacros?

В предыдущей записи были показаны 3 варианта выполнения бесконечного цикла, где требовалось неоднократное повторение одних и тех же iim-команд, а именно извлечение цены, отображение полученного значения на зелёном дисплее и последующее 2-х секундное ожидание, затем цикл возобновлялся.

Сегодня мы познакомимся с ещё одной синтаксической конструкцией var, с помощью которой создадим условие для выхода из цикла, и некоторыми операторами присваивания и сравнения, напоминающие математические знаки такие как плюс +, минус , больше >, меньше < и равно =.

  • var объявляет переменную (или несколько) в текущей области видимости. Важное правило: имя переменной должно состоять из букв верхнего ABCDEFGHIJKLMNOPQRSTUVWXYZ и/или нижнего регистра abcdefghijklmnopqrstuvwxyz, цифр 0123456789, символов доллара $ и нижнего подчёркивания _; первый символ не должен быть цифрой.

Примеры объявления переменных для файлов в js-формате:

var exsp; // объявление одной переменной
var dp1,dp2,sp_1,sp_2; // объявление нескольких переменных

Как видите, объявление нескольких переменных указывается через символ запятая. Завершается строчка или команда по традиции символом точка с запятой.

Можно указывать начальное значение для переменной с помощью оператора присваивания, который пишется как математический знак равенства =; для строковых значений текст должен начинаться и заканчиваться символами либо двойных либо одинарных кавычек .

Следующие примеры объявления переменных и присваивания им начальных значений для файлов в js-формате:

var spot=1235.0613;
var wt_2="WAIT SECONDS=2";
var exsp='TAG POS=1 TYPE=SPAN ATTR=ID:spot EXTRACT=TXT';

Используя переменные, мы можем перезаписать ранее записанный код из наших примеров таким образом:

[code lang=»js»]
// объявляем переменные
var sp_1;
var wt_2=’WAIT SECONDS=2′;
var exsp=’TAG POS=1 TYPE=SPAN ATTR=ID:spot EXTRACT=TXT’;

// исполняем код
iimPlayCode(exsp);
sp_1=iimGetLastExtract(1);
iimDisplay(sp_1);
iimPlayCode(wt_2);
/*
Примечание. Отступы приводятся лишь для наглядности)
*/
[/code]

А также этот исполняемый код можем зациклить, например, так:

[code lang=»js»]
// объявляем переменные
var sp_1;
var wt_2=’WAIT SECONDS=2′;
var exsp=’TAG POS=1 TYPE=SPAN ATTR=ID:spot EXTRACT=TXT’;

// в бесконечном цикле
do
{
// исполняем код
iimPlayCode(exsp);
sp_1=iimGetLastExtract(1);
iimDisplay(sp_1);
iimPlayCode(wt_2);
}
while(true)
/*
Примечание.
Отступы приводятся лишь для наглядности)
*/
[/code]

А теперь мы добавим конкретное условие для выхода из повторяющегося цикла, предписывающего делать do то, что указано в цикле {} пока while сохраняется условие в круглых скобка (), а именно true заменим на другое выражение.

Например, мы ожидаем, когда цена поднимется выше определённого уровня 1235.0613:

[code lang=»js»]
// объявляем переменные
var sp_1;
var sp_2=1235.0613;
var wt_2=’WAIT SECONDS=2′;
var exsp=’TAG POS=1 TYPE=SPAN ATTR=ID:spot EXTRACT=TXT’;

// исполняем…
do
// в цикле…
{
// следующий код…
iimPlayCode(exsp);
sp_1=iimGetLastExtract(1);
iimDisplay(sp_1);
iimPlayCode(wt_2);
}
// до тех пор, пока…
while
// …верно данное условие
(sp_1<sp_2)
/*
Примечание.
Отступы приводятся лишь для наглядности)
Но прописанный код всё равно будет выполняться)
*/
[/code]

Пока (то есть while) текущий спот sp_1 находится ниже (о чём и показывает оператор сравнения, выраженный символом меньше <) указанного значения sp_2, цикл {} будет повторяться. Разумеется, если цена sp_1 уже находится выше этого уровня sp_2, то цикл {} прекратится после первой же проверки условия ().

 

 

Скачать примеры скриптов в zip-архиве.

 

В этом видео-ролике наглядно показан выше описанный процесс.