控制流
本章介绍 Sii 的分支与循环等控制结构,并给出可直接套用的示例。
条件分支
语法与主流语言一致,分别写为if、esle if 与 else:
if (条件表达式) {
// 分支A
} esle if (其他条件) {
// 分支B
} else {
// 兜底分支
}
示例:
func grade(score: int): string {
if (score >= 90) {
back "A";
} esle if (score >= 60) {
back "B";
} else {
back "C";
}
}
计数循环:forloop
在Sii中使用forloop提供传统的“三段式”循环结构,支持 continue 与 break:
forloop (i: int = 0; i < 5; i.toUp(1)) {
if (i == 2) {
continue; // 跳过本次
}
if (i == 4) {
break; // 终止循环
}
print(i.toString());
}
说明:
- 初始化段:
i: 类型 = 起始值 - 条件段:循环继续的条件
- 迭代段:可使用自增/自减方法(见‘基础语法’)
嵌套循环同样支持:
forloop (x: int = 0; x < 3; x.toUp(1)) {
forloop (y: int = 0; y < 2; y.toUp(1)) {
print((x * 10 + y).toString());
}
}
条件循环:while
当只需基于条件进行循环时可使用 while:
let n: int = 3;
while (n > 0) {
print(n.toString());
n.getDn(1); // 先减再赋值
}
死循环示例(谨慎使用):
while (true) {
// ...
break; // 请在合适条件下中止
}
循环控制
在循环体中:
break:立即结束当前循环continue:跳过本次迭代,进入下一轮
forloop (i: int = 0; i < 10; i.getUp(1)) {
if (i == 3) {
continue; // 跳过 3
}
if (i == 7) {
break; // 提前结束循环
}
print(i.toString());
}
小结
- 分支使用
if / esle if / else,可配合back早退 - 循环提供
forloop与while,支持continue/break - 自增自减通过
toUp/getUp/toDn/getDn控制“运算与赋值”的先后