kk_lee69 发表于 2014-11-28 13:12:09

变量 空白 与 变量0 之间判断的问题有解决方法吗??[已解决]

本帖最后由 kk_lee69 于 2014-11-28 15:39 编辑

变量 空白 与 变量0 之间判断的问题有解决方法吗??

我印象中 这个 有人反应问过,但是忘了 解答是甚么,也搜寻不到所以只好在提出来问一下, 当变量 是 空白文字的时候 其判断的结果 会等同 0

请看我的范例   第一段$A=”” 理论上 不秀出资料是对的
但是 第二段 $A=0应该 就不是 “”所以第二段应该要秀出数据的可是却没有

$a=""

if $a <> ""Then
        MsgBox(0,"",$a)
EndIf

$a=0

if $a <> ""Then
        MsgBox(0,"",$a)
EndIf

kevinch 发表于 2014-11-28 13:20:17

If StringLen($a) Then
        MsgBox(0,"",$a)
EndIf这样试下

netegg 发表于 2014-11-28 13:23:54

本帖最后由 netegg 于 2014-11-28 13:43 编辑

用不着,if IsNumber() then
还有if binary() <> '' then

kk_lee69 发表于 2014-11-28 13:47:22

回复 3# netegg

理解 感謝問題解決了 {:face (356):}

kk_lee69 发表于 2014-11-28 13:48:39

回复 2# kevinch

果然 可以感謝kevin 的幫忙

netegg 发表于 2014-11-28 13:57:57

还忘了一个MsgBox(0,0,Asc(0)&@crlf&Asc(''))

austere 发表于 2014-11-28 15:28:54

数字的话用蛋蛋说的这个就可以   IsNumber

user3000 发表于 2014-11-28 19:18:46

回复 1# kk_lee69


    还可以这样判断的.Local $a="", $b = 0

if $a ==""Then
      MsgBox(0,"a",'')
ElseIf $b == 0 Then
                MsgBox(0,"", $a)
EndIf

if $b ==""Then
      MsgBox(0,"b",'')
ElseIf $b == 0 Then
                MsgBox(0,"b", $b)
EndIf

austere 发表于 2014-11-29 08:46:03

{:face (125):}回复 8# user3000

haijie1223 发表于 2014-11-29 09:22:32

回复 1# kk_lee69


    个人认为,AU3对变量的类型界定不严格,导致变量的数据类型随用法不同而改变。所以当$a=0时,根据语句不同,可以是数字0,可以是空字符串,可以是False。所以判断时尽量避免这些数据类型容易混淆的条件。

nqawen 发表于 2014-11-29 09:42:59

学习了,很好的IsNumber

netegg 发表于 2014-11-29 10:08:46

回复 10# haijie1223
不可能是空串,只可能是'0'

hsyl4125 发表于 2014-12-5 18:53:32

不错,支持一下
页: [1]
查看完整版本: 变量 空白 与 变量0 之间判断的问题有解决方法吗??[已解决]