операторы сравнения

Предыдущая тема Следующая тема Перейти вниз

операторы сравнения

Сообщение  Eric-S в Пн Сен 22, 2008 10:49 pm

Один мудрый человек сказал, что всё в мире относительно. В этой главе я раскажу о том, как узнать отношения между двумя выражениями.


введение

В математике, если помните, есть уравнения. Что-то в левой, а что-то в правой части. А между ними знак. Этот знак бывает разным. Но он выражает отношение между левой и правой частями. В компьютере немного не так. Тоже есть две части перед знаком и после, но ничего уже не нужно переносить, машина сама сравнит части и вернёт -1 если равенство верно и 0 если оно неверно.


сравнение чисел

В бэйсике используються теже самые знаки что и в математике. Ниже смотрите их описание.

Знак ставиться между двумя частями выражения, например числами и проверяет правильность полученного выражения.

=равны ли
<меньше ли
>больше ли
<=меньше или равно
>=больше или равно
<>не равно


вот например у нас есть два числа 5 и 8. Мы можем их сравнить.
5 < 8
Эта запись проверяет меньше ли 8 число 5.
Мы это видим, конечноже меньше. Вот и машина догадываеться об этом. Компьютер сравнивает (высчитывает) и в результате получает число -1

Код:

print 5 < 8
sleep

Давайте поменяем знак, напротивоположный
Код:

print 5 > 8
sleep

Больше ли число 5 числа 8? Ответ будет, конечноже нет. Компьютер напишет 0.

Точно также и с другими действиями.

5 = 8
Равноли число 5 числу 8? ответ будет 0 (т.е. нет)

А вот
5 <> 8
не равно ли первое число второму, ответ будет -1 (да, будет).



сравнение строк

Можно сравнивать не только числа, но и строки. Они сравниваються также, но учитываються другие параметры.

И так, равенство строк.
str1 = str2
Если текст в обеих строках идентичен, в плоть до регистра символов, то строки считаються одинаковыми, иначе разными.

Кстати, в результате, мы получаем всё теже -1 или 0.

Вот пример
Код:

print "hello" = "hello" ' сравниваем одинаковые строчки
print "Hello" = "hello" ' строки разные
sleep

Неравенство "<>" ведёт себя также.

А вот знаки отношений "<" (меньше) или ">" (больше).
Отличаються.

В словарях, слова раставлены по алфавиту. То слово, которое будет раньше считаеться меньшем, а то слово которое будет позже считаеться большим.

По алфавиту слова идут так

alpha
betta
delta
gamma

По этому
Код:

print "alpha" < "betta" ' верно
print "delta" > "gamma" ' не верно
sleep

Длина строки также играет роль. По этому
Код:

print "alpha" < "alpha+" ' будет верно
sleep
В данном примере первая строка короче второй, а значит меньше. Но длина это не главное, сначало сравниваются первые части строк. Например
"alpha"
будет меньше
"max"
По тому, что буква "a" раньше (меньше) буквы "м", хотя по смыслу похожи.


сравнение строковых представлений чисел




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

Например строка
"10"
будет больше чем строка
"1"
но меньше чем
"2"

Строки идут в таком порядке

0
01
1
10
2
3

А строки "1" и "01" тоже разные.







А вот если привести строки к одинаковой длине, то сравнение будет верным.

00
01
02
03
10
11

Но если вы хотите сравнивать числа в строковом представлении, то лучше всего их преобразовать к числам.
Код:

print val("10") > val("1")
sleep
Мы получим правильный результат, потому, что сравнивались не строки, а числа.



О строках можно почитать в главе работа со строками.



заключение

Мы познакомились с методами сравнения.

Конечноже напрямую сравнивать нет смысла, в прочем как и выводить на экран. Но об этом поговорим в других главах.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения