ИНФОРМАЦИЯ,    ДИЗАЙН,    ПЕРЕВОДЫ,    РЕКЛАМА   .   .   .
w a p - с а й т
Информационный портал
Сегодня:  
admin@aranea.ru
+79068922256

  aranea.ru || JavaScript - Введение | Управление выполнением программы

Управление выполнением программы.

Почему управляют выполнением программы?

Часто вам необходимо, чтобы программа выполняла различные действия при разных условиях. Например, вы можете написать программу, которая проверяет время каждый час и меняет какой-то параметр в соответствии со временем дня. Вы можете написать программу, которая допускает какой-то ввод и действует в соответствии с ним. Или вы можете написать программу, которая повторяет определенное действие.

Есть несколько условий, которые вы можете проверить. Все условные тесты в JavaScript являются булевыми, так что результат любой проверки может быть либо true (правда), либо false (ложь). Вы можете свободно проверять любые значения: булевы, числовые или строковые.

JavaScript предоставляет контроль над структурами в диапазоне возможностей. Самое простое управление структурами – это условные выражения.

Использование условных выражений

JavaScript поддерживает условные выражения if и if...else. В выражении if проверяется условие, и если это условие выполняется, то код JavaScript, который вы написали, работает. (В выражении if...else выполняется другой код, если условие соответствует проверке.) Самая простая форма выражения if может быть написана полностью в одну строку, но в программах обычны многострочные выражения if и if...else.

Следующие примеры демонстрируют синтаксис, который вы можете использовать в выражениях if и if...else. Первый пример показывает самую простую булеву проверку. Если (и только если) выражение внутри круглых скобок оценивается как true, то выполняется выражение или блок выражений после if.

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

// В этом примере проверка будет ложью, пока оба условия не будут правдой.
if (rind.color == "deep yellow " && rind.texture == "large and small wrinkles")
{
        theResponse = ("Is it a Crenshaw melon? <br> ");
}

// В этом примере проверка успешная, если любое из условий правда.
var theReaction = "";
if ((lbsWeight > 15) || (lbsWeight > 45))
{
    theReaction = ("Oh, what a cute kitty! <br>");
}
else
    theReaction = ("That's one huge cat you've got there! <br>");

Условный оператор

JavaScript поддерживает также неявную условную форму. Она использует знак вопроса после условия (которое проверяется) и определяет две альтернативы, первая выполняется, если условие правда, а вторая – если ложь. Альтернативы разделяются двоеточием.

var hours = "";

// Код определяет, содержат ли часы 12.
// theHour или theHour - 12.

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

Совет. Если у вас несколько условий для совместной проверки, и вы знаете, что одно более вероятно или нет в отличие от других, в зависимости от того, связана ли проверка с OR (||) или AND (&&), то вы можете ускорить выполнение вашей программы, помещая такое условие первым в условном выражении. Например, если три условия должны быть все правдой (использование оператора &&), а вторая проверка не проходит, то третье условие не тестируется.

Аналогично, если только одно из нескольких условий должно быть правдой (использование оператора ||), то тестирование останавливается, как только одно условие прошло проверку. Это эффективно, если проверочные условия привлечены для вызова функции или другого кода.

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

if ((runfirst() == 0) || (runsecond() == 0))
// продолжение программы 

Использование повторения или циклы

Есть несколько способов для выполнения выражения или блоков выражений повторно. В общем, повторное выполнение называется циклом. Обычно, он контролируется проверкой какой-то переменной, значение которой меняется каждый раз после выполнения цикла. JavaScript поддерживает несколько типов циклов: for, for...in, while, do...while и switch.

Использование циклов

Выражение for определяет переменную счетчик, условия проверки и действие, которое изменяет этот счетчик. Только перед каждым выполнением цикла (это называется один проход или одна итерация цикла) проверяется условие. После выполнения цикла счетчик меняется перед началом следующей итерации.

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

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

var howFar = 11;  // Установка ограничения цикла на 11.

var sum = new Array(howFar);  // Создается массив, называемый sum с 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

JavaScript предоставляет специальный тип цикла для пошагового прохода через все свойства объекта. Счетчик цикла for...in проходит через все индексы массива. Индекс – это строка, а не число.

for (j in tagliatelleVerde)  
// tagliatelleVerde – это объект с несколькими свойствами
{
// Различные выражения кода JavaScript.
}

Использование цикла while

Цикл while очень похож на for. Различие состоит в том, что цикл while не имеет встроенной переменной счетчика или выражения, меняющего счетчик. Если вы уже изменили условие, которое отражается в значении, присвоенного переменной, и вы хотите использовать его для контроля повторного выполнения выражения или блока выражений, используйте цикл while.

var theMoments = "";
var theCount = 42;        
// инициализация переменной счетчика.
while (theCount >= 1)  {
    if (theCount > 1)  {
        theMoments = "Only " + theCount + " moments left!";
}
    else  {
        theMoments = "Only one moment left!";
    }
theCount--;        
// Изменение счетчика.
}
theMoments = "BLASTOFF!";

Обратите внимание. Так как цикл while не имеет явного встроенного счетчика, то он даже более ценен для бесконечного цикла, чем другие типы. Более того, так как не всегда легко открыть, где или когда условие цикла меняется, то оно легко описывается в цикле while, в котором это условие, фактически, никогда не обновляется. Вы должны быть очень внимательными, когда создаете цикл while.

Использование выражений break и continue

JavaScript предоставляет выражения для остановки выполнения цикла. Выражение 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;  // выход из цикла при первой встречи с remainder, равного escape.
.
}
theComment = checkMe + " divided by " + kcount + " leaves a remainder of  " + theRemainder;
}

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

   {
      continue;  // выбирает только те remainders, которые равны escape, игнорируя все другие.
}
// Код JavaScript, использующий выбранные remainders.
}

var theMoments = "";
var theCount = 42;  // Счетчик инициализирован.
while (theCount >= 1)  {
// if (theCount < 10)  {  // Внимание!
// Это использование continue создает бесконечный цикл!
// continue;
// }
    if (theCount > 1)  {
        theMoments = "Only " + theCount + " moments left!";
}
    else  {
        theMoments = "Only one moment left!";
    }
theCount--;  // Счетчик меняется.
}
theCount = "BLASTOFF!";
← Назад | Вперед →
Copyright © 2006 -  aranea.ru