Что нового

Сравнение boolean со строкой

Pahuchiy

Новичок
Сообщения
37
Репутация
0
так работает:
Код:
$s="hgh"
if $s="bla-bla" Then
   ;nothing
else
   ConsoleWrite("bingo")
EndIf

а почему так не работает?:
Код:
$s=true
if $s="bla-bla" Then
   ;nothing
else
   ConsoleWrite("bingo")
EndIf
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Внимательно читаем справку :
Любое число не равное 0 или любая не пустая строка в логических вычислениях равна True и наоборот, число 0 или пустая строка равна False.
Таким образом "bingo" появится только если $s="" или $s=0
 
A

Alofa

Гость
ra4o сказал(а):
... "bingo" появится только если $s="" или $s=0
Не совсем:
Код:
$s=False
if $s="bla-bla" Then
else
   ConsoleWrite("bingo")
EndIf

Pahuchiy или вот еще для вас головоломка:
Код:
$s = 1
If $s == "1-bla-bla" Then
Else
	ConsoleWrite("bingo")
EndIf

Так как здесь использован оператор "==", то все выражение приводится к единому типу - строка, но достаточно изменить его на "=", то все меняется:
- при сравнении числа и строки, строка конвертируется в число по правилу функции Number.

Читаем:
- Обзор языка - типы данных
- Обзор языка - операторы
- Обзор языка - условные операторы
- Как правильно создать условие If ... Then
 
Верх