找回密码
 加入
搜索
查看: 2235|回复: 13

[AU3基础] 再问个简单问题,a值为0,判断a="a"却成立,为何?

 火..   [复制链接]
发表于 2017-9-29 12:08:19 | 显示全部楼层 |阅读模式
1、
Local $a=0
If $a="a" Then MsgBox(0,0,0)

____________________________
2、
Local $a=0
If $a=="a" Then MsgBox(0,0,0)

上例1中,1个等号,数字与字符串居然会判断为相等?为何呢?难道"a"的值也是0?把"a"改为任意字符串,if $a="vbsdsda" 还是为真,为什么呢?

今天写代码,排查了半天,原来是一个等号的原因,但是不得其解。搜索论坛也发现有该案列,链接:http://www.autoitx.com/forum.php ... hlight=%B5%C8%BA%C5

但是上方案列好像与我的案例有点不一样,求解~~~~~~~~~~~~
发表于 2017-9-29 13:07:16 | 显示全部楼层
回复 1# chamlien

請使用 ==

If $a=="a" Then MsgBox(0,0,0)
发表于 2017-9-29 16:58:44 | 显示全部楼层
是的,这个等号的坑貌似一不注意就会产生一些没有注意的小BUG
我现在一般都是这样写:
1)对于数值的比较
if  number($a) = number($b)  then
2) 对于字符串的比较
if  string($a) == string($b) then
发表于 2017-9-29 17:09:07 | 显示全部楼层
Local $a=0
If $a="a" Then MsgBox(0,0,0)

$a = 0 , 这是一个数值,第二行的=号自然被解析为一次数值判断,那么 后面的字符串  "a" 先转换为数值再与前面的数字 0 比较,字符串转换为数值为0
好像不奇怪吧
 楼主| 发表于 2017-9-29 17:54:52 | 显示全部楼层
Local $a=0
If $a="a" Then MsgBox(0,0,0)

$a = 0 , 这是一个数值,第二行的=号自然被解析为一次数值判 ...
zghwelcome 发表于 2017-9-29 17:09



    所有字符串转为数值,值均为0?
 楼主| 发表于 2017-9-29 18:27:30 | 显示全部楼层
回复 3# fenhanxue


    是的,今天找了半天,才发现是等号问题
发表于 2017-9-29 19:05:38 | 显示全部楼层
回复 5# chamlien


    是的
发表于 2017-9-29 20:20:30 | 显示全部楼层
回复 6# chamlien


    因为字符串不是数值  非 是 0.。不信你把第一个改成1就可以看见效果了
发表于 2017-10-1 21:53:13 | 显示全部楼层
学习一下先,留意这样的小细节
发表于 2017-10-2 08:29:27 | 显示全部楼层
= 判断两个值是否相等.  比如 If $var= 5 Then    (如果变量 $var 的值为 5 则条件成立). 用于字符串时不区分大小写
== 判断两个字符串是否相等.左方和右方的值将会转化成字符串,并区分大小写,这个运算只能用于区分字符串大小写的比较.

所以字符串比较需要2个等号
发表于 2017-10-3 21:16:52 | 显示全部楼层
回复 3# fenhanxue


        国庆快乐  分享快乐

评分

参与人数 1金钱 -30 收起 理由
afan -30

查看全部评分

发表于 2017-10-4 07:58:11 | 显示全部楼层
Local $a = '0'
If $a = "a" Then MsgBox(0,0,0)

如上回答, 字符比较使用 ==
发表于 2017-10-4 07:58:23 | 显示全部楼层
字符串加引号
 
Local $a='0'
If $a='a' Then MsgBox(0,0,0)
发表于 2017-10-6 13:11:34 | 显示全部楼层
我以为au3不支持==呢,其它语言一直都是用的==,以后看来在比较时用==好一点.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 07:05 , Processed in 0.082762 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表