跳到主要内容

循环语句

介绍

Wave语言提供循环语句以处理需要多次执行相同代码的情况。 循环语句用于在满足特定条件时继续执行代码,或重复执行一定次数。

这使得可以不必重复编写相同的逻辑,而是通过简洁明确的代码来表达重复的工作。 Wave支持基于条件的循环和基于次数的循环,并提供关键字来控制循环中的执行流程。

本节将解释whilefor语句,以及用于控制循环流程的breakcontinue关键字的使用方法。


while 语句

while语句在给定条件表达式被评估为真(true)时重复执行代码块。 当条件表达式变为假(false)时,循环立即终止。

此方法适用于重复次数不明确,并需满足特定条件的情况。

基本结构

在Wave中while语句的基本结构如下。

while (条件表达式) {
// 要重复执行的代码
}

条件表达式必须评估为bool类型,可以在用花括号{}括起来的代码块中编写一个或多个语句。

示例:输出从0到4

var i :i32 = 0;

while (i < 5) {
println("i是{}。", i);
i = i + 1;
}

在此示例中,变量 i 小于 5 时执行循环。 在每次迭代中输出当前值,将 i 的值增加 1,使条件最终变为假。


for 语句

for 语句适用于重复次数较为明确的情况。 通过一次性定义初始值、条件表达式和增量表达式,可以清晰地表达循环的流程。

因为将循环控制所需的元素集中在一起,所以容易一目了然地了解循环结构。

基本结构

for (var 变量名: 类型 = 初始值; 条件式; 增减式) {
// 循环代码
}

这里的循环变量从初始值开始,在条件表达式为真时执行循环。 每次循环结束时,增量表达式执行,循环变量的值被更改。

示例: 输出从1到5

for (var i: i32 = 1; i <= 5; i = i + 1) {
println("i = {}", i);
}

在这个例子中,从 i 等于 1 开始,执行一个循环直到其小于或等于 5。 每次循环输出 i 的值后将其增加 1。


嵌套循环

循环语句可以写在另一个循环语句内,这称为嵌套循环。 嵌套循环对于遍历二维数据结构或处理多个条件组合非常有用。

示例: 二重while语句

var i :i32 = 0;

while (i < 3) {
var j :i32 = 0;

while (j < 2) {
println("i={}, j={}", i, j);
j = j + 1;
}

i = i + 1;
}

在这个例子中,每当外部 while 循环运行一次,内部 while 循环将全部执行。 通过这种方式,可以顺序处理 (i, j) 形式的组合。


break 语句

break 语句立即终止循环,并将流转移到该循环之外。 在不再需要继续循环时使用。

示例: 特定值时终止循环

var i :i32 = 0;

while (true) {
if (i == 5) {
break;
}

println(i);
i = i + 1;
}

在这个例子中,当 i 等于 5 时,break 被执行,结束无限循环。 这样,break 语句在想要独立于循环条件控制循环时很有用。


continue 语句

continue 语句跳过当前循环的剩余代码,直接开始下次循环。 在某些条件下只需省略部分逻辑时使用。

示例: 仅输出偶数

for (var i: i32 = 0; i <= 10; i = i + 1) {
if (i % 2 == 1) {
continue;
}

println(i);
}

在这段代码中,如果 i 是奇数则执行 continue,跳过输出部分。 结果只输出偶数值。


总结

Wave 的循环设计为能够自然表达基于条件和基于次数的重复。 while 语句适合条件为中心的循环,而 for 语句用于循环次数和流程明确的情况。

结合使用 breakcontinue 可以在循环过程中精细控制执行流,从而构建更复杂和灵活的循环逻辑。