魔导 发表于 2012-9-25 23:54:06

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

本帖最后由 魔导 于 2012-9-26 11:58 编辑

小弟写了个   FUNC    返回值是一个数组   结果是数组可以用但是用IF直接判断则不成立啦
看了帮助里面写的是用   @error   来判断的
问题:IF不是用‘0’    或    ‘非0’来判断的吗?
         还是数组(不是元素,是数组变量)被认为是‘0’?
还请 前辈大大们指点指点.............感谢各位的真心帮助{:face (411):}
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元老    的指教................

haijie1223 发表于 2012-9-26 07:29:03

数组怎么可以用来作为判断语句呢,这样就行了吧:IsArray(IniReadSection (@ScriptDir&'\ini\日期.ini',"日期"))。没测试,楼主自己试试吧。

love5173 发表于 2012-9-26 09:08:27

if 后面不能跟数组。
成立就是1,不成立就是0.这个也是根据函数自己的返回值来决定的。
实际判断时候就是判断的1或者0.
数组本身既不是1也不是0

liongodmien 发表于 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 =
If $a Then MsgBox(0, 10, "ok")

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

piaoa_998 发表于 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
页: [1]
查看完整版本: If 语句 不可以直接判断 数组吗?(不是元素,是数组变量)[已解决]