я расскажу об операциях которые
|
|
|
|
|
Урок 3. Операции с числами и строками, логические выражения
В этом уроке я расскажу об операциях которые можно проводить с числами и строками. Со многими из них Вы уже встречались в других языках программирования. Начну я, пожалуй, с операциями над числами. |
| ++ |
- инкремент |
$a ++; # $a = $a + 1 |
| -- |
- дикремент |
$a --; # $a = $a - 1 |
| ** |
- возведение в степень |
$a = 2**10; # $a = 1024 |
| * |
- умножение |
$a = 5 * 6; # $a = 30 |
| / |
- деление |
$a = 5 / 2; # $a = 2.5 |
| % |
- получение остатка от деления |
$a = 5 % 2; # $a = 1 |
| + |
- сложение |
$a = 5 + 5; # $a = 10 |
| - |
- вычитание |
$a = 2 - 5; # $a = -3 |
Приоритеты распределены в порядке убывания сверху вниз. Как видите, всё как в математике.
Операции над строками.
| . |
конкатенация |
$a = "abc"."123"; # $a = "abc123" |
Как видите, операторов работы со строками немного меньше ;-) .
Для удобства оперирования с одним операндом, придуман оператор "X=", где X может принимать значение любого из вышеперечисленного операторов. Как это работает: $a
.= 5, тоже самое что и $a = $a . 5;
$u += 8, тоже самое что и $u = $u + 8 и т.д.
Логические операторы позволяют проверить на истинность некоторое условие или совокупность условий. Если условие истинно, оператор возвращает True, если ложно - False.
| < |
меньше |
$a = 5 < 2; # $a = False |
| > |
больше |
$a = 5 > 2; # $a = True |
| == |
равно |
$a = 3 == 3; # $a = True |
| <= |
меньше или равно |
$a = 4 <= 8; # $a = True |
| >= |
больше или равно |
$a = 4 >= 8; # $a = False |
| != |
не равно |
$a = 5 != 5; # $a = False |
| lt |
строковое меньше |
$a = "11" lt "a"; # $a = True |
| gt |
строковое больше |
$a = "11" gt "a"; # $a = False |
| eq |
строковое равно |
$a = "o" eq "o"; # $a = True |
| ne |
строковое не равно |
$a = "o" ne "o"; # $a = False |
| le |
строковое меньше или равно |
$a = "11" le "a"; # $a = True |
| ge |
строковое больше или равно |
$a = "11" ge "a"; # $a = False |
<
Таблицы истинности операторов AND, OR и XOR. В них показано что возвращает логический оператор в зависимости от значений сравниваемых выражений
| AND |
OR |
XOR |
| True |
True |
True |
True |
True |
True |
False |
True |
True |
| False |
False |
True |
True |
True |
Flase |
True |
True |
Flase |
| False |
True |
False |
True |
False |
True |
True |
False |
True |
| False |
False |
False |
False |
False |
False |
False |
False |
False |
* * * *
Программа, демонстрирующая работу условных операторов.
#!/usr/bin/perl #programm 3 print "Content-Type: text/html\n\n";
$var1 = 5; $var2 = 3; $a=(($var1 > $var2) and ($var1 != $var2)); print $a;
Работает она следующем образом: сначала вычисляются логические выражения в скобках, затем сравниваются между собой. Оба выражения истины. Из таблицы истинности видно: если оба выражения истины, логический оператор AND возвращает True, что и выведется нам на экран.
Несколько слов о преобразовании строк в числа и обратно.
Если строковое значение используется как операнд в операции с числами (например, в операции сложения), Perl автоматически преобразует эту строку в эквивалентное числовое значение, как если бы оно было введено в виде десятичного числа с плавающей запятой. Нечисловые окончания и начальные пробельные символы игнорируются, поэтому " 123. 4 5 fed" (с начальным пробелом) без какого-либо предупреждения преобразуется в "123. 45". Самый крайний из подобных случаев — когда нечто, не являющееся числом, вообще без предупреждения преобразуется в нуль (как строка fed, которую мы использовали здесь как число).
Если же, наоборот, там, где должно быть строковое значение, вводится числовое (например, в операции конкатенации строк), это числовое значение конвертируется в строку, которая была бы выведена на экран вместо него. Например, если вы хотите конкатенировать строку х с результатом умножения 4 на 5, это можно записать как
"X" .(4*5); # то же самое, что "X" . 20, или "Х20"
(Помните, что круглые скобки заставляют сначала выполнить 4*5, а затем выполнять операцию конкатенации.)
Другими словами, вам не нужно (в большинстве случаев) беспокоиться о том, что указано в качестве операнда — строка или число, поскольку Perl выполняет все необходимые преобразования самостоятельно.
* * * *
Попробуйте по памяти переписать таблицы истинности для каждого из операторов (AND, OR, XOR).
Напмшите программу, которая выводит значения 3-х переменных в четвертую таким образом, чтобы значение 3-й переменной стояло сразу за начением 2-й, а значение 2-й - за первым.
[Содержание] [Вступление] [необходимое для начала изучения] [урок 1] [урок 2] [урок 3] [урок 4] [урок 5] [урок 6] [урок 7] [урок 8] [урок 9] [урок 10] [урок 11] [урок 12] [урок 13] [урок 14] [урок 15] [урок 16] [урок 17] [урок 18] [урок 19] [урок 20] [урок 21] [урок 22] [урок 23] [урок 24] [урок 25] [урок 26] [урок 27] [урок 28] [правила хорошего тона] [приложение A] [приложение Б] [приложение В] [заключение] [благодарности]
Copyright (c) ClericICN, 2002
|
Все публикации раздела