JSCRIPT MANUAL

Microsoft® JScript™
Управление ходом программы
 Описание JScript
Пред.
След.


Зачем контролировать ход выполнение программы?
Часто необходимо составить сценарий, выполняющийразличные действия в зависимости от конкретного условия. Например, Вы можете составить сценарий, проверяющий время каждый час, и изменяет некий параметр в зависимости от времени суток. Вы можете написать сценарий, который обрабатывает входные данные, и действует в зависимости от этих значений.

Существует несколько видов проверки условий. Все условные выражения в Microsoft JScript - логические, поэтому результат их проверки равен либо true, либо false. Вы можете проверять значения логического, числового строкового типов данных.

В JScript простейшими структурами управления являются условные выражения.

Использование условных выражений
В JScript поддерживаются условные выражения if и if...else. В выражении if проверяется условие, при соответствии этому условию, выполняется написанный разработчиками JScript-код. (В выражении if...else выполняется при несоответствии условию другой код.) Простейшая форма оператора if может быть написана одной строкой, Но обычно операторы if и if...else записываются в несколько строк.

Следующий пример демонстрирует синтаксис выражений if и if...else. В первом примере - простейшая логическая проверка. Если выражение в круглых скобках равно true, выражение или блок выражений после if выполняется.

// Функция  smash() определена в другом месте кода.
if (newShip)
   smash(champagneBottle,bow);  // Логическая проверка newShip на равенство true.

// В данном примере, условие выполняется, если оба подусловия равны  true.
if (rind.color == "ярко-желтый " && rind.texture == "большие и малые пятна")
{
        theResponse = ("Это тыква? <br> ");
}

// В следующем примере, условие выполнится, если хотя бы одно из подусловий (или оба) равны true.
var theReaction = "";
if ((lbsWeight > 15) || (lbsWeight > 45))
{
    theReaction = ("Неплохо! <br>");
}
else
    theReaction = ("Не очень! <br>");
Условный оператор
В JScript также поддерживается упрощенная форма условия. Это использование вопросительного знака после условия для проверки (подобно if до условия), и двух альтернативных выражений, одно применяется при успешной проверки, другое - при не соответствии условию. Альтернативные выражения разделяются двоеточием.
var hours = "";

// Код для проверки времени
// theHour, or theHour - 12.

hours += (theHour >= 12) ? " PM" : " AM";



Предупреждение   Если проверяются несколько условий одновременно, и вам известна вероятность каждого из условий, в зависимости от операторов OR (||) или AND (&&), вы можете изменить порядок проверки условий для ускорения работы сценария.

Например, если три условия должны быть истинными, а второе условие ложно, то третье условие не проверяется.

И наоборот, если хотя бы одно из условий должно быть истинным (при использовании оператора ||), то при истинности одного, проверка остальных не проводится.

Пример побочного эффекта: runsecond не будет проверен, если runfirst() возвращает 0 или false.

if ((runfirst() == 0) || (runsecond() == 0))
// некоторый код  

Циклы
Существует несколько вариантов выполнения инструкции или блоков инструкций неоднократно. Повторное выполнение называется циклом. Цикл обычно управляется исходя из значения некоторых условий и(ли) переменных, значения которых меняется в конце каждого цикла. В Microsoft JScript применяется несколько типов циклов: for, for...in, while, do...while и switch.
Применение цикла for
В выражении for определены переменная-счетчик, условие проверки и действие, изменяющее значение счетчика. После каждого выполнения цикла (это называется итерацией цикла), проверяется условие, производится обработка выполнения действий на переменной-счетчиком, и если условия проверки выполнены, выполняется новая итерация цикла.

Если условие для выполнения цикла никогда не будет выполнено, цикл никогда не завершится. Если проверяемое условие всегда выполняется, цикл бесконечен. Поэтому разработчикам следует позаботиться об этом.


/*
Изменение выражения (" icount ++ " в приведенных примерах) 
выполняется в конце цикла, после блока инструкций, 
прежде, чем условие проверено.
*/

var howFar = 11;  // Ограничение выполнения цикла - 11 итераций.

var sum = new Array(howFar);  // Создание массива размер - 11, индексы от 0 по 10.
var theSum = 0;
sum[0] = 0;

for(var icount = 1; icount < howFar; icount++)  {        // Счетчик  от 1 до 10 в данном случае.
theSum += icount;
sum[icount] = theSum;
}

var newSum = 0;
for(var icount = 1; icount > howFar; icount++)  {        // Цикл не будет выполнен.
newSum += icount;
}

var sum = 0;
for(var icount = 1; icount > 0; icount++)  {        // Бесконечный цикл.
sum += icount;
}
Применение цикла for...in
В JScript используется специальный цикл для пошагового обхода свойств объекта. Счетчик цикла for...in проходит все индексы массива. Это строковый тип, а не числовой.
for (j in tagliatelleVerde)  // tagliatelleVerde является объектом с несколькими свойствами
{
// Код JScript .
}
Применение цикла while
Цикл while напоминает цикл for. Различие в том, что в цикле while отсутствует встроенная переменная-счетчик, а, следовательно, и условия ее изменения. Выражения над условием для выполнения цикла while находятся внутри цикла в блоке инструкций.
var theMoments = "";
var theCount = 42;        // Инициализация переменной-счетчика.
while (theCount >= 1)  {
    if (theCount > 1)  {
        theMoments = "Осталось " + theCount + " секунд!";
}
    else  {
        theMoments = "Осталась одна секунда!";
    }
theCount--;        // изменение счетчика.
}
theMoments = "Время истекло!";



Предупреждение   Так как цикл while не имеет встроенных переменных-счетчиков, он более подвержен бесконечному зацикливанию. Условия для выхода из цикла может не случится, и цикл становится бесконечным. Поэтому необходимо чрезвычайно осторожно использовать цикл while.


Применение выражений break и continue в циклах
В Microsoft JScript существует инструкция остановки выполнения цикла. Оператор завершения break может использоваться, чтобы остановить цикл, при выполнении какого-либо условия. Инструкция continue используется, чтобы немедленно перейти к выполнению следующей итерации, пропуская остальную часть выполнения кода текущей итерации, но обновляя переменную-счетчик как в обычных циклах for или for...in.
var theComment = "";
var theRemainder = 0;
var theEscape = 3;
var checkMe = 27;
for (kcount = 1; kcount <= 10; kcount++) 
{
    theRemainder = checkMe % kcount;
    if (theRemainder == theEscape)
      {
            break;  // выход при выполнении условия (theRemainder == theEscape).
}
theComment = checkMe + " divided by " + kcount + " leaves a remainder of  " + theRemainder;
}

for (kcount = 1; kcount <= 10; kcount++) 
{
   theRemainder = checkMe % kcount;
   if (theRemainder != theEscape) 

   {
      continue;  // При неравенстве theRemainder и theEscape переходим к следующей итерации.
}
// JScript код.
}




Перевод © 2000-2013 pauk R-T-F-M.info. Все права защищены.