powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / тип булеан
2 сообщений из 2, страница 1 из 1
тип булеан
    #35674494
noob v0.1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Объясните что не так?
Почему 1 интерпретируется и как true и как false?

Создаю vbscript
-----------------------------------------
GLOBAL_FAIL = -1
if GLOBAL_FAIL then
WScript.echo GLOBAL_FAIL & " - true"
end if
if not GLOBAL_FAIL then
WScript.echo GLOBAL_FAIL & " - false"
end if
GLOBAL_FAIL = 0
if GLOBAL_FAIL then
WScript.echo GLOBAL_FAIL & " - true"
end if
if not GLOBAL_FAIL then
WScript.echo GLOBAL_FAIL & " - false"
end if
GLOBAL_FAIL = 1
if GLOBAL_FAIL then
WScript.echo GLOBAL_FAIL & " - true"
end if
if not GLOBAL_FAIL then
WScript.echo GLOBAL_FAIL & " - false"
end if
-----------------------------------------

Вывод:
-----------------------------------------
-1 - true
0 - false
1 - true
1 - false
-----------------------------------------
...
Рейтинг: 0 / 0
тип булеан
    #35674832
guru v 9.9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
noob v0.1,

потому что логические операции выполняются побитно, а выражение в If сравнивается с нулём. Если 0, выполняется ветка else, если не 0 - ветка then.

Итого:
-1 <> 0
Not -1 = 0 = 0

0 = 0
Not 0 = -1 <> 0

1 <> 0
Not 1 = -2 <> 0
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / тип булеан
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]