Cangjie控制结构
Cangjie循环语句
for-in
控制转移
程序优化
for-in 表达式用于遍历扩展了迭代器接口 Iterable<T> 的类型实例。在Cangjie中,for-in 适用于遍历数组、元组等数据类型。
for (迭代变量 in 序列) {
循环体
} 计算序列表达式,初始化迭代器。
更新迭代器:
如果迭代器终止,结束循环;
否则,将当前迭代器值绑定到迭代变量,并执行循环体。
重复步骤2,直至遍历结束。
在某些情况下,for-in 循环中不需要使用迭代变量时,可以使用通配符 _ 代替,避免未使用变量的警告。
for (_ in 1..3) {
println("任务执行")
} 输出:
任务执行
任务执行 在 for-in 循环中,迭代变量是只读的,试图修改迭代变量会导致编译错误。
for (i in 0..3) {
i = i + 1 // 错误:迭代变量不可修改
} where 条件可用于过滤迭代项,只有满足条件的项才会进入循环体。
for (i in 1..10 where i % 2 != 0) {
println("奇数:${i}")
} 输出:
奇数:1
奇数:3
奇数:5
奇数:7
奇数:9 main(): Int64 {
let scores = [("张三", 80), ("李四", 65), ("王五", 55)]
for ((student, score) in scores) {
if (score >= 60) {
println("${student} 的成绩是 ${score},及格")
} else {
println("${student} 的成绩是 ${score},不及格")
}
}
return 0
} 输出:
张三 的成绩是 80,及格
李四 的成绩是 65,及格
王五 的成绩是 55,不及格 main(): Int64 {
let numbers = [3, 5, 7, 9]
var total = 0
for (num in numbers) {
total += num
}
println("数组总和为:${total}")
return 0
} 输出:
数组总和为:24 main(): Int64 {
let numbers = [1, 2, 3, 4, 5]
for (num in numbers) {
println(num)
}
return 0
} 输出:
1
2
3
4
5 main(): Int64 {
let items = [(2, 15), (3, 30), (1, 10)]
var totalPrice = 0
for ((quantity, price) in items) {
totalPrice += quantity * price
}
println("总价格为:${totalPrice}")
return 0
} 输出:
总价格为:130 在循环结构中,有时需要提前结束循环或跳过当前循环,可以使用 break 和 continue 表达式。这些控制转移表达式使得程序更加灵活。
break 用于提前终止当前循环,跳出循环体,继续执行循环之后的代码。
main(): Int64 {
let numbers = [10, 20, -5, 40, 50]
for (num in numbers) {
if (num < 0) {
println("找到负数:${num}")
break
}
println("当前数字:${num}")
}
return 0
} 输出:
当前数字:10
当前数字:20
找到负数:-5 continue 用于跳过当前循环的剩余部分,直接进入下一轮循环。
main(): Int64 {
let numbers = [1, 2, 3, 4, 5]
for (num in numbers) {
if (num % 2 == 0) {
continue
}
println("奇数:${num}")
}
return 0
} 输出:
奇数:1
奇数:3
奇数:5 本节通过多个实例详细介绍了 for-in 循环的多种应用场景,并补充了 break 与 continue 在Cangjie中的灵活用法。这些控制结构帮助开发者更好地管理程序流程,优化代码逻辑。
下一篇将探讨Cangjie中的函数与方法,涵盖函数的定义、参数传递、返回值等内容,帮助实现代码的模块化和复用。
原文作者:;如有侵权,请联系管理员删除。