While循环的定义

时间:2015-06-08 07:55:22

标签: autoit

我刚刚开始学习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'时,上面的循环应该经历一个无限循环。出现?

我很困惑。如果有人回答,我会很感激..

1 个答案:

答案 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