ppsfxn 发表于 2012-2-22 21:46:26

【已解决】字符串比较问题

本帖最后由 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呢

tcpuuu 发表于 2012-2-22 21:58:13

$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    因為兩個字符一樣

lixiaolong 发表于 2012-2-22 22:26:23

$abc = "abc"
If $abc == 0 Then
      MsgBox(0, "$abc = 0", $abc)
Else
      MsgBox(0, "$abc <> 0", $abc)
EndIf

fuldho 发表于 2012-2-23 11:25:48

$abc = "abc"
If $abc <> "0" Then
      MsgBox(0, "$abc = 0", $abc)
EndIf

netegg 发表于 2012-2-23 14:38:35

回复 1# ppsfxn
= 在这里不是等号的意思,是赋值的意思,也就是说,这个if是判断赋值是否成功

afan 发表于 2012-2-23 15:21:09

回复ppsfxn
= 在这里不是等号的意思,是赋值的意思,也就是说,这个if是判断赋值是否成功
netegg 发表于 2012-2-23 14:38 http://www.autoitx.com/images/common/back.gif


    蛋蛋这个想法还真有创意,不过,肯定不对…If 后面的“=”如果是赋值那这个判断几乎没有意义

afan 发表于 2012-2-23 15:33:27

本帖最后由 afan 于 2012-2-23 17:37 编辑

用“=”如果有一方是数值,则进行数值比对,相当于两边都先使用了 Number() 再进行比对
用“==”是进行字符串比对,相当于两边都先使用了 String() 再进行比对

netegg 发表于 2012-2-23 16:03:18

=相当于bitand,因为auto本身只有number变量,是没有string的

netegg 发表于 2012-2-23 16:04:50

回复 7# afan
这个判断本来就没什么意义,前面是0后面也是0

3mile 发表于 2012-2-23 16:46:07

$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兄正解

sprime 发表于 2012-2-27 22:20:10

操作符有误的问题。

afan 发表于 2012-2-27 22:29:13

又一扔下一贴不管的。

wsmoxiannan 发表于 2012-2-28 09:23:21

看似简单的一个问题其中的内容也不简单啊,学习了。

maolimin256 发表于 2012-2-28 12:24:37

新手,学习下

shuangsexing 发表于 2012-2-29 15:04:16

学习学习~!!
页: [1] 2
查看完整版本: 【已解决】字符串比较问题