Jscript: Операторы языка программирования

В этой статье мы рассмотрим операторы языка программирования Jscript, которые позволяют манипулировать работой сценария. Сами операторы Jscript языка программирования чем-то схожи по синтаксису на язык C, в частности, тут используются конструкции для выхода из цикла break и continue. Условно, все из них можно разделить на три части:

  • Унарные, бинарные, логические и операторы отношений
  • Условные операторы и циклы
  • Обработка исключительных ситуаций

И так, давайте приступим к их рассмотрению.

Унарные, бинарные, логические и операторы отношений языка программирования

Унарные — применяются к одному операнду

 — Меняет знак на противоположный
! — Меняет значение логической переменной на противоположное
++ — Увеличение значения числовой переменной на единицу (инкремент)
 — Уменьшение значения числовой переменной на единицу (декремент)

Бинарные — соединяют два операнда

 — Вычитание
/ — Деление
+ -Сложение
% — Вычисление остатка от деления
* — Умножение

Логические операции и сдвиг

— Логическое И
— Логическое ИЛИ
— Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ
— Логическое НЕ
>> — Сдвиг вправо
<< — Сдвиг влево
>>> — Сдвиг вправо с заполнением освобождаемых разрядов нулями

Комбинации оператора присваивания и других операторов

— Простое присваивание
+= — Увеличение численного значения или конкатенация (склеивание) строк
-= — Уменьшение численного значения
*= — Умножение
/= — Деление
%= — Вычисление остатка от деления
>>= — Сдвиг вправо
>>>= — Сдвиг вправо с заполнением освобождаемых разрядов нулями
<<= — Сдвиг влево
|= — Логическое ИЛИ
&= — Логическое И
^= — Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ

Операторы отношения — возвращать только логические значения true или false

— Левый операнд больше правого
>= — Левый операнд больше или равен правому
— Левый операнд меньше правого
<= — Левый операнд меньше или равен правому
== — Левый операнд равен правому
!= — Левый операнд не равен правому

Логические

|| — Оператор отношения «ИЛИ». Возвращает true, если один из опе­рандов равен true. В противном случае возвращает false
&& — Оператор отношения «И». Возвращает true, если оба операнда равны true. В противном случае возвращает false

Условные операторы и циклы

if…else

Содержит следующий синтаксис:

if (условие) выражение_1 [else выражение_2]

Сначала проверяется условие в круглых скобках, если оно возвращает значение true, то происходит выполнение первого выражения, иначе, выполняется второе выражение (если оно присутствует). Если, в выражении используется несколько операторов языка программирования, то синтаксис принимает вид:

if (условие) {выражение_1} [else {выражение_2}]

В качестве выражения можно использовать другие конструкции и конструкцию if … else как вложенную. Например:

if (х ==5) { if (у == 6) z = 17; } else z = 20;

В языке JScript также существует специальный тип условного оператора — «?:». Его синтаксис следующий: условие ? выражение_1 : выражение_2

Вначале оценивается условие, расположенное в левой части. Если оно равно true, то выполняется первое выражение, иначе — второе. Например:

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

for

Данный цикл содержит следующий синтаксис:

for ([инициализация;] [условие; ] [итерация]) { тело цикла }

Инициализация — присваивание начальных значений переменным цикла, можно объявлять новые переменные с помощью ключевого слова var.

Условие – задается условие выхода из цикла, оно проверяется каждый раз при прохождении цикла. Если условие возвращает логическое true, то начинают выполняться строки из тела цикла, иначе, произойдет выход из цикла.

Итерация — изменение значений переменных цикла (увеличения или уменьшения значения счетчика). Например:

for (var icount = 1; icount > 100; icount++) {
     newSum += icount;
}

С помощью запятой «,» можно, в разделе итерации изменять значение сразу нескольких переменных:

var i, j;
j = 10;
for (i = 0; i<=10; j++, j--) {}

for… in

Цикл for … in используется для получения доступа к свойствам объекта или элементам массива. Его общий синтаксис таков:

for (переменная in [ объект | массив ])  { тело цикла }

Переменная – ссылка на каждый элемент набора или массива.

for ... in можно использовать для вывода на экран всех свойств объекта в одном цикле:
for (var prop in obj) {
displayLine=obj.name+"."+prop+"="+obj[prop];
WScript.Echo(displayLine)
}

while

В цикле while, в отличие от for, нет встроенного счетчика и выражения, его изменяющего. Общий синтаксис данного оператора языка программирования таков:

while (условие) { тело цикла }

Пример использования цикла while:

//*********************************
//while.js
//*********************************
var icon,MyArr,MySum;  
MyArr=new Array(2,33,15,3.5,10);
icon=0;
MySum=0;
while (icon<5){
      MySum+=MyArr[icon];
      icon++;    
}
WScript.echo ("Сума элементов массива ровна: \t" + MySum);

 

do… while

В данном цикле условие проверяется в конце, он имеет следующий вид:

do {тело цикла} while (условие);

В этом случае цикл выполняется до тех пор, пока проверяемое после ключевого слова while условие не станет ложным (false). Так как условие проверяется уже после прохождения тела цикла, то операторы внутри цикла do … while выполнятся, по крайней мере, один раз.

Пример использования do … while:

//*********************************
//do_while.js
//*********************************
var icon,MyArr,MySum;  
MyArr=new Array(2,33,15,3.5,10)
icon=0;
MySum=0;
do{
     MySum+=MyArr[icon];
     icon++;
}
while (icon<5)
WScript.echo ("Сума элементов массива ровна: \t" + MySum);

Операторы break и continue языка программирования

Для безусловного завершения цикла на JScript служит необязательное ключевое слово break (аналог оператора Exit из VBScript). Если интерпретатор обнаружит это ключевое слово, текущий цикл завершится, а затем исполнится код, идущий за циклом.

Ключевое слово continue, создает противоположный эффект. Если интерпретатор обнаружит его, управление сразу передается в начало цикла. При этом индекс увеличивается или уменьшается, и цикл выполняется повторно. Например:

//*********************************
//break_continue.js
//*********************************
var s, i;
s=0, i=0;
while (i < 10) {
     i++;
     // Пропускаем число 5
     if (i==5) {
                 continue;
     }
     s+=i;
}
WScript.echo ("Сума чисел от 1 до 9, кроме числа 5, ровна " + s);
s =0, i=0;
while (i < 10) {
     i++;
     // Пропускаем число 5
     if (i==5) {
                 break;
     }
     s+=i;
}
WScript.echo ("Сума чисел от 1 до 4 ровна " + s);

Конструкция try … catch

В любом сценарии или программе могут возникать различные исключительные ситуации (например, деление на ноль или попытка открыть несуществующий файл), как результат, возникает ошибка времени выполнения и работа скрипта прекращается. Что бы обработать ошибку, применяется оператор try … catch языка программирования. Синтаксис следующий:

try Защищенный блок catch(except) Блок обработки исключительных ситуаций

После ключевого слова try здесь записываются те операторы языка программирования, при выполнении которых потенциально может возникнуть ошибка. В качестве параметра except надо использовать любое имя переменной (предварительно объявлять эту переменную не нужно). Если в защищенном блоке не возникло ошибки, то значение этой переменной будет равно нулю; в случае же возникновения исключительной ситуации управление сразу передается в блок catch, при этом переменная except как экземпляр объекта Error будет содержать два свойства: number — числовой код возникшей ошибки и description — краткое описание ошибки.

Вот пример сценария:

//*********************************
//try_catch.js
//*********************************
var FSO, Folder, Files, s;
FSO=WScript.CreateObject("Scripting.FileSystemObject");
try{
Folder=FSO.GetFolder("D:\\Windows\\");
}catch(e){
if (e!=0){
msg="Ошибка!!!\n" + "Код: " + e.number +"\nОписание: " + e.description;
WScript.echo (msg);
WScript.Quit();
 
}
}
Files=new Enumerator(Folder.Files);
for (; !Files.atEnd(); Files.moveNext()) {
s+=Files.item().Name+"\n";
}
WScript.echo(s);

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий