while循环的问题(已解决)
本帖最后由 bfm13142 于 2010-10-10 15:17 编辑While 1
$var = Ping("www.AutoItScript.com", 500)
If $var And $bj = 0 Then
TrayTip("状态-成功", "收发时间间隔:" & $var & "毫秒", 10, 1)
$bj = 1
ElseIf $var = 0 And $bj = 1 Then
TrayTip("状态-失败", "错误代码:" & @error, 10, 1)
$bj = 0
EndIf
WEnd我想问几个问题,懂的别笑我。。
1. while 1 是一个无限循环,那 if$var and $bj = 0 then 这里的bj=0为什么要定义=0或者有什么用?
2.当$var And $bj = 0 Then 时 $bj = 1 这个有什么用?
3.如果我想当$bj = 0时怎么样让他还继续检查是否ping得通www.AutoItScript.com?
第一次发帖,找了几个资料多没能理解,能不能指点一下? 本帖最后由 liufenglg 于 2010-10-9 15:59 编辑
HotKeySet("{ESC}", "Terminate")
Local $bj
$bj=0;
While $bj=0
$var = Ping("www.AutoItScript.com", 500)
If $varThen
TrayTip("状态-成功", "收发时间间隔:" & $var & "毫秒", 10, 1)
EndIf
$bj=0
WEnd
Func terminate()
Exit
EndFunc按esc退出 {:face (229):}回复 2# liufenglg
感谢你的回答,但我想知道的是提的那几个问题怎么理解或解释,谢谢· If $var And $bj = 0 Then这里的$bj其实是一个人为设置的开关值,设为什么都可,$var如果为真,则$var>0,说明网络是通的,这时把$bj设为1,此时If $var And $bj = 0 不成立,ElseIf $var = 0 And $bj = 1 也不成立,不再循环继续PING下去。 本帖最后由 t87564833 于 2010-10-10 00:21 编辑
$bj 在你循环之前都没有赋值,看不出有什么用,如果单判断PING是否正常的话
用返回值判断吧
成功: 返回收发时间间隔(大于0).
失败: 如果远程主机ping不通或者有其它网络错误则返回0,同时设置 @error 的值(请看下面的部分).
$var = Ping("www.AutoItScript.com", 500)
成功则$var>0 后面执行什么自己写了
失败则$var=0 后面执行什么自己写了 关于while后不接受其他指令的问题
http://www.5idiy.org/forum.php?mod=viewthread&tid=171
本坛我也有发表,这个问题在实际脚本中会经常遇到 回复 5# t87564833
其实$bj是赋值为0,但没贴上来。。。而已。
返回值@error也想过,不过好像代码没有那么有效。。还得多研究才得 回复 6# caodongchun
你的代码有一定的用处,不过还得细细研究一下才得 {:face (427):}看了四楼的回答还不错,研究了一个晚上想明白了,谢谢你们的回答 非常感谢,也学习了。 条件循环需要对条件赋值,如果判断条件=那么继续循环,如果<>则不再循环。 回复 11# 51ak
这个是比较好理解的。
页:
[1]