【已解决】字符串比较问题
本帖最后由 ppsfxn 于 2012-5-22 19:43 编辑$abc = "abc"
If $abc = 0 Then
MsgBox(0, "$abc = 0", $abc)
Else
MsgBox(0, "$abc <> 0", $abc)
EndIf
为什么这段代码会执行MsgBox(0, "$abc = 0", $abc),也就是为什么$abc=0呢 $A=A
$B=B
$Ti = StringCompare($A,$B) StringCompare($A,$B)
msgbox(0,"",$Ti,3)
這樣的話 $Ti 不是0
$A=A
$B=A
$Ti = StringCompare($A,$B) StringCompare($A,$B)
msgbox(0,"",$Ti,3)
這樣的話 $Ti 是0 因為兩個字符一樣 $abc = "abc"
If $abc == 0 Then
MsgBox(0, "$abc = 0", $abc)
Else
MsgBox(0, "$abc <> 0", $abc)
EndIf $abc = "abc"
If $abc <> "0" Then
MsgBox(0, "$abc = 0", $abc)
EndIf 回复 1# ppsfxn
= 在这里不是等号的意思,是赋值的意思,也就是说,这个if是判断赋值是否成功 回复ppsfxn
= 在这里不是等号的意思,是赋值的意思,也就是说,这个if是判断赋值是否成功
netegg 发表于 2012-2-23 14:38 http://www.autoitx.com/images/common/back.gif
蛋蛋这个想法还真有创意,不过,肯定不对…If 后面的“=”如果是赋值那这个判断几乎没有意义 本帖最后由 afan 于 2012-2-23 17:37 编辑
用“=”如果有一方是数值,则进行数值比对,相当于两边都先使用了 Number() 再进行比对
用“==”是进行字符串比对,相当于两边都先使用了 String() 再进行比对 =相当于bitand,因为auto本身只有number变量,是没有string的 回复 7# afan
这个判断本来就没什么意义,前面是0后面也是0 $abc = "1abc"
If $abc = 0 Then
MsgBox(0, "$abc = 0", $abc)
Else
MsgBox(0, "$abc <> 0", $abc)
EndIf
$abc = "abc"
If $abc = 0 Then
MsgBox(0, "$abc = 0", $abc)
Else
MsgBox(0, "$abc <> 0", $abc)
EndIf
以字母开头的字符串将被视为数值零. 以数字开头的字符串将返回被(首个)非数字字符截断后的结果.
AFAN兄正解 操作符有误的问题。 又一扔下一贴不管的。 看似简单的一个问题其中的内容也不简单啊,学习了。 新手,学习下 学习学习~!!
页:
[1]
2