XScript 手册 · Chapter 3
title: "控制流 — if / for / while" chapter: 3 images:
- xscript-control-flow.png
控制流
XScript 支持三种基础控制语句:if、for、while。语法与 C# 一致,设备控制场景这三种足以覆盖。
if
if (IO[START] == ON) {
Log.Add("start pressed");
}
else if (IO[RESET] == ON) {
Log.Add("reset pressed");
}
else {
// 待机
}常见用法
- 传感器检查 —
if (Cylinder[LOADER].ReadSensorA() == true) - 错误保护 —
if (Motor[X].GetEndStatus() != 0) ShowError("E100"); - 标志判定 —
if (initOk == false) return false;
for
次数明确时使用。
for (int i = 0; i < 10; i++) {
Motor[X].MoveAbs(i * 10.0, true);
Sleep(100);
}while
直到条件成立为止,反复执行。设备等待循环中常见。
int timeout = 0;
while (IO[READY] == OFF) {
Sleep(50);
timeout += 50;
if (timeout > 5000) {
ShowError("E_TIMEOUT");
return false;
}
}注意:
while(true)无出口会锁住线程并冻结系统。必须包含超时或中断条件。简单等待请优先使用Wait()API。
建议
- 始终用
{ }包裹语句体 — 便于后续添加代码 ShowError()后立即return false,让上层步骤能感知错误- 长条件分多行书写并加注释