我刚刚开始学习Autoit,我在理解while语句时遇到了麻烦。
我试图制作一个脚本,用于在Image' a.bmp'暴露了。图像' a.bmp'将成为某个网站的图标。
因此,下面的脚本是为了感知favicon' a.bmp'
$ search = _ImageSearch(' a.bmp',0,0,0,0) $ search = _ImageSearch(' a.bmp',0,0,0,0) 睡眠(10) WEND
这个脚本实际上运行正常。它退出循环并在' a.bmp'出现。但问题是我后来才意识到,当表达式($ search = _ImageSearch(' a.bmp',0,0,0,0)为&#时执行while循环) 39;真'
如果我提到的while循环的定义是正确的,那么当' a.bmp'时,上面的循环应该经历一个无限循环。出现?
我很困惑。如果有人回答,我会很感激..
答案 0 :(得分:2)
你不能指定一个预期表达式的值!
array(
'title' => 'American Hustle',
'year' => '2013',
'quality' => 1080p
);
这不会给$ search赋值,只是检查$ search是否等于_ImageSearch。
从帮助文件中:
基于表达式循环。
While $search = _ImageSearch
如果表达式为真,则执行以下语句直到WEnd语句。这个循环一直持续到表达式为假。
那么,你的例子会发生什么?
While <expression>
statements
...
WEnd
第一个ImageSearch失败并将$ search设置为0。 在While循环下,你有一个表达式$ search = _ImageSearch,如果_ImageSearch再次失败,这将是真的。
Basicaly你有而0 = 0 Wend ,一旦图像出现,循环结束。
正确的代码是
$search = _ImageSearch('a.bmp',0,0,0,0)
While $search = _ImageSearch('a.bmp',0,0,0,0)
Sleep(10)
WEnd
为了进一步改进代码,我只使用一行代码。
While Not _ImageSearch('a.bmp',0,0,0,0)
Sleep(10)
WEnd