Читайте также: |
|
Побитовые операторы сдвига:
• Сдвиг влево (<<)
• Сдвиг вправо (>>)
• Сдвиг вправо с заполнением нулями (> > >)
Операторы сдвига присваивает два операнда: первый - количество на которое будет сдвинуто, и второй определяет число битовых положений, которыми первый операнд должен быть сдвинут. Направление действия сдвига управляется использующим оператором.
Операторы сдвига преобразуют операнды к 32-битное целое число, и возвращают результат того же самого типа что и левый оператор.
Сдвит влево (<<)
Сдвиг влево перемещает все биты влево на количество позиций, указанных в правой части выражения, заполняя освободившиеся позиции нулями.
Например, 9<<2 возвращает 36, потому что 1001 сдвигается на 2 бита влево и становится равным 100100, что равно в десятичной системе 36.
Сдвиг вправо (>>)
Сдвиг вправо заполняет освободившиеся слева позиции значением самого левого бита исходного значения.
Пример, 9 >> 2 возвращает 2, потому что 1001 сдвигается на два бита вправо и становится 10, что равно в десятичной системе 2. Аналогично, -9 >> 2 возвращает -3, потому что знак сохраняется.
Сдвиг вправо с заполнением нулями (> > >)
Сдвиг вправо с заполнением нулями работает аналогично сдвигу влево, только в противоположном направлении.
Например, 19> > >2 возвращает 4, потому что 10011 сдвигается на два бита вправо и становятся 100, что равно в десятичной системе 4. Для неотрицательных чисел сдвиг вправо с заполнением нулями и сдвиг вправо с сохранением знака дают один и тот же результат
7. Ветвление программ. Условный оператор и оператор выбора. Примеры.
Инструкция if – это базовая управляющая инструкция, позволяющая интерпретатору JavaScript принимать решения или, точнее, исполнять инструкции зависимости от условий. Инструкция имеет две формы. Первая:
if (выражение)
инструкция
В этой форме инструкции if сначала вычисляется выражение. Если полученный
результат равен true или может быть преобразован в true, то исполняется инструкция. Если выражение равно false или преобразуется в false, то инструкция не исполняется. Например:
if (username == null) // Если переменная username равна null или undefined,
username = "John Doe"; // определяем ее
Вторая форма инструкции if вводит конструкцию else, исполняемую в тех случаях, когда выражение равно false. Ее синтаксис:
if (выражение)
инструкция1
else
инструкция2
В этой форме инструкции сначала вычисляется выражение, и если оно равно true, то
исполняется инструкция1, в противном случае исполняется инструкция2. Например:
if (username!= null)
alert("Привет " + username + "\nДобро пожаловать на мою домашнюю страницу.");
else {
username = prompt("Добро пожаловать!\n Как вас зовут?");
alert("Привет " + username);
}
Фигурные скобки используются если нужно выполнить несколько инструкций.
Если требуется выполнить один из многих фрагментов кода, то возможный способ сделать это состоит в применении инструкции else if.
if (n == 1) {
// Исполняем блок кода 1
}
else if (n == 2) {
// Исполняем блок кода 2
}
else if (n == 3) {
// Исполняем блок кода 3
}
else {
// Если все остальные условия else не выполняются, исполняем блок 4
}
Инструкция if создает ветвление в потоке исполнения программы. Но если все ветви зависят от значения одной переменной. В этом случае расточительно повторно проверять значение одной и той же переменной в нескольких инструкциях if.
В данном случае эффективнее использовать инструкцию выбора switch. Синтаксис инструкции switch выглядит следующим образом.
switch(n) {
case 1: // Выполняется, если n == 1
// Исполняем блок кода 1.
break; // Здесь останавливаемся
case 2: // Выполняется, если n == 2
// Исполняем блок кода 2.
break; // Здесь останавливаемся
case 3: // Выполняется, если n == 3
// Исполняем блок кода 3.
break; // Здесь останавливаемся
default: // Если все остальное не подходит...
// Исполняем блок кода 4.
break; // Здесь останавливаемся
}
Различные места в блоке кода помечены ключевым словом case, за которым следует значение и символ двоеточия. Когда выполняется инструкция switch, она вычисляет значение выражения, а затем ищет метку case, соответствующую этому значению. Если метка найдена, исполняется блок кода, начиная с первой инструкции, следующей за меткой case. Если метка case с соответствующим значением не найдена, исполнение начинается с первой инструкции, следующей за специальной меткой default:. Если метки default: нет, блок кода пропускается целиком. Инструкция break приводит к передаче управления в конец инструкции switch. В случае отсутствия инструкций break инструкция switch начинает исполнение блока кода с метки case, соответствующей значению выражения,
и продолжает исполнение до тех пор, пока не дойдет до конца блока.
function convert(x) {
switch(typeof x) {
case 'number': // Преобразуем число в шестнадцатеричное целое
return x.toString(16);
case 'string': // Возвращаем строку, заключенную в кавычки
return '"' + x + '"';
case 'boolean': // Преобразуем в TRUE или FALSE, в верхнем регистре
return x.toString().toUpperCase();
default: // Любой другой тип преобразуем обычным способом
return x.toString()
}
}
8. Подпрограммы: описание и вызов процедур и функций; формальные и фактические параметры; параметры-значения; параметры-переменные; параметры-константы. Примеры.
Процедура (в программировании) - понятие, которое используется в большинстве языков программирования высокого уровня, и соответствует значению подпрограмма.
Дата добавления: 2015-08-20; просмотров: 52 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Побитовые (поразрядные)операторы | | | Открытые и закрытые процедуры |