流程控制
条件必须写在圆括号里,代码块必须带花括号。
ruguo(如果 / if)
cpro
ruguo (a > 10) {
a = 18
} fouze ruguo (a < 5) {
a = 20
} fouze {
a = 100
}cpro
如果 (a > 10) {
a = 18
} 否则 如果 (a < 5) {
a = 20
} 否则 {
a = 100
}cpro
if (a > 10) {
a = 18
} else if (a < 5) {
a = 20
} else {
a = 100
}不写类型的比较默认按 z64(i64)比较,其他类型要写明,例如 ==[zifuchuan](==[string])、<[f64]。
dang(当 / while)
cpro
bl i = 0
dang (i < 10) {
i = i +[z64] 1
}cpro
变量 i = 0
当 (i < 10) {
i = i +[i64] 1
}cpro
var i = 0
while (i < 10) {
i = i +[i64] 1
}jishu(计数 / for)
C 风格的条件循环:
cpro
jishu (bl i = 0; i < 10; i = i +[z64] 1) {
ruguo (i == 5) {
jixu
}
dayin(i)
}
jishu (;;) { // 无限循环
tiaochu
}cpro
计数 (变量 i = 0; i < 10; i = i +[i64] 1) {
如果 (i == 5) {
继续
}
打印(i)
}
计数 (;;) { // 无限循环
跳出
}cpro
for (var i = 0; i < 10; i = i +[i64] 1) {
if (i == 5) {
continue
}
print(i)
}
for (;;) { // 无限循环
break
}用 shuyu(属于 / in)遍历数组:
cpro
bl arr leixing [z32; 3] = [10, 20, 30]
jishu (x shuyu arr) {
dayin(x)
}
jishu (i, x shuyu arr) { // 带下标
dayin(i, x)
}cpro
变量 arr 类型 [i32; 3] = [10, 20, 30]
计数 (x 属于 arr) {
打印(x)
}
计数 (i, x 属于 arr) { // 带下标
打印(i, x)
}cpro
var arr type [i32; 3] = [10, 20, 30]
for (x in arr) {
print(x)
}
for (i, x in arr) { // 带下标
print(i, x)
}- 循环变量不写
bl,类型自动推断 - 被遍历的对象必须是变量,临时值要先存进变量
- 遍历得到的元素是拷贝
tiaochu(跳出 / break)和 jixu(继续 / continue)只能写在循环体里,不支持带标签跳出。
