找回密码
 加入
搜索
查看: 5639|回复: 5

[AU3基础] If 语句 不可以直接判断 数组吗?(不是元素,是数组变量)[已解决]

  [复制链接]
发表于 2012-9-25 23:54:06 | 显示全部楼层 |阅读模式
本帖最后由 魔导 于 2012-9-26 11:58 编辑

小弟写了个   FUNC    返回值是一个数组   结果是数组可以用  但是用  IF  直接  判断则不成立啦
看了帮助  里面写的  是用   @error   来判断的
问题:  IF  不是用  ‘0’    或    ‘非0’  来判断的吗?
           还是数组(不是元素,是数组变量)  被认为是  ‘0’  ?
还请 前辈  大大  们指点指点.............感谢各位的真心帮助
If IniReadSection (@ScriptDir&'\ini\日期.ini',"日期") Then MsgBox(0,0,0)
If a() Then MsgBox(0,0,1)
Func a() 
        Return IniReadSection (@ScriptDir&'\ini\日期.ini',"日期") 
EndFunc 
;两个都没成立 - -!


问题已解决 ,多谢  发哥 、love5173、liongodmien元老    的指教................
发表于 2012-9-26 07:29:03 | 显示全部楼层
数组怎么可以用来作为判断语句呢,这样就行了吧:
IsArray(IniReadSection (@ScriptDir&'\ini\日期.ini',"日期"))
。没测试,楼主自己试试吧。

评分

参与人数 1金钱 +30 收起 理由
魔导 + 30 多谢发哥新点子,这样确实可以OK了

查看全部评分

发表于 2012-9-26 09:08:27 | 显示全部楼层
if 后面不能跟数组。
成立就是1,不成立就是0.这个也是根据函数自己的返回值来决定的。
实际判断时候就是判断的1或者0.
数组本身既不是1也不是0

评分

参与人数 1金钱 +30 收起 理由
魔导 + 30 多谢多谢

查看全部评分

发表于 2012-9-26 10:39:13 | 显示全部楼层
本帖最后由 liongodmien 于 2012-9-26 10:42 编辑

凡是判断都是对true和false的判断,要么直接是一个标志值,要么是一个表达式产生的标志值,这样才是正确的编制方式。

AU3在这方面介定比较宽松,以0、false或“空”代表假(false),以其它作为真(true),楼主的代码在我这里的AU3版本:3.3.7.15中没有对应的配置文件时显示提示,有时则不提示。

数组元素有标志值,那么可以等于数组有标志值吗?
下面例子需要仔细思考下:
If IniReadSection (@ScriptDir&'\日期.ini',"日期") Then MsgBox(0, 1,IniReadSection (@ScriptDir&'\ini\日期.ini',"日期") & @error)
MsgBox(0, 11, IniReadSection (@ScriptDir&'\日期.ini',"日期") & @error)

If a() Then MsgBox(0,2,1)
Func a() 
        Return IniReadSection (@ScriptDir&'\日期.ini',"日期") 
EndFunc 

$a = "12345"
If $a Then MsgBox(0, 10, "ok")

$a = ""
If $a Then MsgBox(0, 20, "ok")


Dim $a[3] = [12,34,5]
If $a[0] Then MsgBox(0, 10, "ok")

If $a Then MsgBox(0, 20, "ok")

评分

参与人数 1金钱 +30 收起 理由
魔导 + 30 多谢元老细心指教~~

查看全部评分

发表于 2012-9-28 21:43:30 | 显示全部楼层
#include <Array.au3>

$Ret = IniReadSection (@ScriptDir&'\ini\日期.ini',"日期")
If NOT @error
Then _arraydisplay($Ret)
发表于 2013-1-2 17:47:39 | 显示全部楼层
数组本身既不是1也不是0
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-18 05:31 , Processed in 0.091492 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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