漫反射 发表于 2012-1-6 13:05:21

[已解决]IF问题

本帖最后由 漫反射 于 2012-1-10 17:49 编辑

$a = 0
If $a = 'abc' Then MsgBox(0,0,11111)


$a = 0
怎么'abc'也能then?

风行者 发表于 2012-1-6 13:13:34

一些例子:

    10 * 20 等价于 数字 200 (* 是乘法运算符)

    10 * "20" 等价于 数字 200

    "10" * "20" 等价于 数字 200

    10 & 20 等价于 字符串 "1020" (& 是字符串连接运算符)


$a是数字跟'abc'对比,则'abc'强制转换成数字
Number('abc') = 0

漫反射 发表于 2012-1-6 13:14:25

回复 2# 风行者


    学习了

hzxymkb 发表于 2012-1-6 13:15:38

这个是单行写法!查询帮助文档!

netegg 发表于 2012-1-6 13:37:35

$a = 0 这句隐含定义了$a为数字类型,下一句‘abc’要先转化为数字进行比较,lz试试:$a = '0'
If $a = 'abc' Then MsgBox(0,0,11111)

itljl 发表于 2012-1-6 21:40:57

我多次在这个数字比较上出错了。

itljl 发表于 2012-1-6 21:41:12

以后每次我返回一值都用字符,

h20040606 发表于 2012-1-7 05:47:12

这就是AUTOIT的弱数据类型的结果,比较的时候,自己要注意类型相同

xms77 发表于 2012-1-7 10:27:01

路过学习了

happytc 发表于 2012-1-7 10:44:02

回复 1# 漫反射


    所以要想回避这个
就用双等号

$a = 0
If 'abc' == $a Then MsgBox(0,0,11111)

502762378 发表于 2012-1-7 16:42:05

学习了。。。

daedd 发表于 2012-7-11 23:10:21

AU3连个IF都这么复杂的。。。

xiaowo 发表于 2012-7-12 08:11:23

我也曾在这上面吃过夸,后来突发奇想给值加引号,居然搞定了,不过当然还不明白怎么回事,直到后来在论坛搜索才知道是怎么回事
页: [1]
查看完整版本: [已解决]IF问题