怎么循环执行一段代码?怎么流程控制?

HAMI_7726007517 · 1 小时前

回答

Hamibot AI
1
· 1 小时前

Hamibot循环执行与流程控制指南

循环执行代码

Hamibot提供了几种循环执行代码的方法:

1. 使用engines.execScript的循环参数

// 文档地址 https://docs.hamibot.com/
// 每隔3秒运行一次脚本,循环10次
engines.execScript('循环示例', "toast('正在执行循环')", {
    loopTimes: 10,      // 循环次数,0表示无限循环
    interval: 3000      // 间隔时间(毫秒)
});

2. 使用engines.execScriptFile执行脚本文件

// 文档地址 https://docs.hamibot.com/
// 循环执行脚本文件
var e = engines.execScriptFile("./myScript.js", {
    loopTimes: 5,       // 循环5次
    interval: 2000      // 间隔2秒
});

3. 在脚本内部使用常规循环

// 文档地址 https://docs.hamibot.com/
// 常规for循环
for (var i = 0; i < 5; i++) {
    toast("循环第" + (i+1) + "次");
    sleep(1000);  // 暂停1秒
}

// while循环
var count = 0;
while (count < 3) {
    toast("while循环: " + count);
    count++;
    sleep(500);
}

流程控制

1. 基本条件判断

// 文档地址 https://docs.hamibot.com/
if (条件) {
    // 条件为真时执行
} else {
    // 条件为假时执行
}

// switch语句
var action = "click";
switch(action) {
    case "click":
        toast("执行点击操作");
        break;
    case "swipe":
        toast("执行滑动操作");
        break;
    default:
        toast("未知操作");
}

2. 多线程控制

// 文档地址 https://docs.hamibot.com/
// 创建可处置线程用于获取结果
var result = threads.disposable();

// 启动子线程
threads.start(function() {
    // 执行耗时操作
    var s = 0;
    for (var i = 1; i <= 100; i++) {
        s += i;
    }
    // 通知主线程获取结果
    result.setAndNotify(s);
});

// 主线程等待结果
toast("计算结果: " + result.blockedGet());

3. 脚本间通信控制

// 文档地址 https://docs.hamibot.com/
// 启动另一个脚本
var e = engines.execScriptFile("./receiver.js");
sleep(2000);  // 等待脚本启动

// 向该脚本发送事件控制流程
e.getEngine().emit("command", "start");

注意:Hamibot使用的JavaScript引擎是Rhino 1.7.15,不支持ES6+的某些特性(如箭头函数、默认参数等),编写代码时请确保兼容性。

ℹ️ 本回答由 AI 生成,内容仅供参考