Приветствую всех читателей блога scriptcoding.ru. В данной публикации мы с вами рассмотрим оператор цикла FOR для языка программирования jscript.
Конструкция for, js языка, предназначена для циклического выполнения одной и той же операции n-е количество раз, основной её характеристикой являются три ключевые операции: инициализация, проверка, обновление.
- Инициализация – Значение, которое проверяется перед началом работы конструкции for. JS позволяет не просто указать имя переменной и присвоить ей начальное значение, но и объявить новую переменную с помощью ключевого слова var.
- Проверка – Условие, которое проверяется перед каждой итерацией. Если проверка условия вернет true (ИСТИНА), то выполняется тело цикла, иначе – происходит выход из конструкции.
- Обновление – фактически счётчик, операция инкремента или декремента.
Общий синтаксис цикла for языка jscript таков:
For (инициализация; проверка; обновление){тело цикла}
Оператор цикла FOR – язык программирования JSCRIPT
Как видим, ничего сложного нет… Для примера, допустим нам надо обработать массив, который состоит из 300 элементов. Делать это вручную просто глупо, поэтому, мы задаем начальный номер элемента и конечный, объявляем переменную, которой на каждой итерации будет присваиваться новое число (индекс), так мы с помощью одной строки программного кода сможем многократно выполнять нужную операцию.
Хорошо, давайте рассмотрим простой пример:
//************************************* // оператор цикла for js // Сложение чисел // jscript_for.js //************************************* var summ=0; //Сложение чисел от 1 до 10 for (var i=1; i<=10; i++) { summ+=i; } WScript.Echo (summ); //55 summ=0; //Сумма парных цифр от 2 до 10 for (var i=2; i<=10; i+=2) { summ+=i; } WScript.Echo (summ); //30 |
В данном сценарии JScript мы используем две конструкции for.
Первая – Вычисляет сумму чисел от 1 до 10, видим, что мы объявили локальную переменную i, в качестве начального значения (инициализация), мы указали 1, в качестве проверки мы задали условие i<10. В блоке обновления мы прописали i++ — это операция инкремента, аналогично, мы могли прописать i+=1 или i=i+1.
Вторая — Выполняет задачу аналогичную первому оператору for цикла, но тут мы вычисляем сумму всех парных чисел на отрезке от 2 до 10.
Хорошо, теперь давайте рассмотрим такую ситуацию, нужно решить уравнение, или просто, математическое выражение, в котором должна изменяться не одна переменная, а несколько, в таком случае, чтобы не использовать два цикла for js, JScript язык позволяет использовать символ «запятая», смотрим пример:
//************************************* // оператор цикла for // Сложение цифр // 1_jscript_for.js //************************************* var summ1=0, summ2=0; //Сумма цифр от 1 до 10 for (i=1, k=10; i<=10, k>=1; i++, k--) { summ1+=i; summ2+=k } WScript.Echo ("от 1 до 10: " + summ1 + "\nот 10 до 1: " + summ2); //55 |
В данном примере, который работает под управлением сервера Windows Script Host, мы использовали один оператор for цикла js, как видим, он позволяет через запятую прописывать несколько условий. Фактически, тут вычисляется сумма дважды, в первом случае идет суммирование чисел от 1 до 10, а во втором случае идет суммирование в обратном порядке от 10 до 1. Данный пример не несет никакой практической пользы, и является лишь примером для лучшего понимания.
Давайте рассмотрим следующий пример на языке jscript:
//************************************* // оператор цикла for // Квадратное уравнение // 2_jscript_for.js //************************************* var res="", result=0, a=-2, b=6, c=20; //ax2+bx+c=0 // решение: x1=-2, x2=5 //Сумма цифр от 1 до 10 for (var x=-10; x<=10; x+=0.5) { result=a*(x*x)+b*x+c; if (result==0) {res+=x + "\n"} } WScript.Echo (res); |
Данный пример показывает как можно с помощью оператора цикла for и JS сценария решить квадратное уравнение методом простого перебора. Используя цикл js for, мы задали начальное и конечное значение x, которое будет подставляться в квадратное уравнение, мы знаем, что квадратное уравнение, это уравнение вида ax2 +bx + c = 0. Подставляя x, мы проверяем результат решения, если результат равен нулю, то мы заносим значение x в res. В качестве обновления (итерации) мы увеличиваем значение x на 0,5. Конечно, я знал решение квадратного уравнения, и поэтому выбрал столь малые промежутки. Другое дело, если приёется решать кубическое уравнение с помощью оператора for цикла. Тут нам придётся указывать куда более большее начальное и конечное значение.
В теле самой конструкции for, JS языка, можно использовать дополнительно break и continue. BREAK производит выход из текущего блока цикла, а CONTINUE – пропускает текущую итерацию и переходит к следующей итерации. Использование break и continue я также рассмотрел в статье: «Конструкции while и do…while«.
Что еще за парные числа??? Может четные?