在这里插入图片描述

循环语句是编程中最基础也是最重要的控制结构之一。在仓颉(Cangjie)编程语言中,循环语句为开发者提供了灵活而强大的迭代能力。本文将深入探讨仓颉语言中的两种主要循环结构:for循环while循环


二、while循环 🔄

2.1 基本语法

while循环是最基础的循环结构,它会在条件为真时持续执行代码块。

while (条件表达式) {
    // 循环体
}

2.2 使用示例

示例1:基础计数

var count = 0
while (count < 5) {
    println("当前计数: ${count}")
    count++
}

示例2:条件判断

var sum = 0
var num = 1
while (sum < 100) {
    sum += num
    num++
}
println("总和达到100时的数字: ${num}")

2.3 while循环的特点

  • ✅ 先判断条件,再执行循环体
  • ✅ 适合循环次数不确定的场景
  • ✅ 需要手动管理循环变量
  • ⚠️ 注意避免无限循环

三、for循环 🎯

3.1 传统for循环

类似于C/Java风格的for循环结构。

for (初始化; 条件; 更新) {
    // 循环体
}

示例:

for (var i = 0; i < 10; i++) {
    println("第 ${i} 次迭代")
}

3.2 for-in循环(范围遍历)

仓颉提供了更简洁的范围遍历语法。

// 遍历范围
for (i in 0..10) {
    println(i)  // 输出 0 到 9
}

// 包含结束值
for (i in 0..=10) {
    println(i)  // 输出 0 到 10
}

// 指定步长
for (i in 0..10:2) {
    println(i)  // 输出 0, 2, 4, 6, 8
}

3.3 集合遍历

let numbers = [1, 2, 3, 4, 5]

// 遍历数组
for (num in numbers) {
    println(num)
}

// 带索引遍历
for (index, value in numbers.enumerate()) {
    println("索引 ${index}: 值 ${value}")
}

3.4 for循环的高级特性

条件过滤:

for (i in 0..100) {
    if (i % 2 == 0) {
        println("偶数: ${i}")
    }
}

四、循环控制语句 🎮

4.1 break语句

立即终止循环,跳出循环体。

for (i in 0..100) {
    if (i == 50) {
        break  // 当i等于50时退出循环
    }
    println(i)
}

4.2 continue语句

跳过当前迭代,继续下一次循环。

for (i in 0..10) {
    if (i % 2 == 0) {
        continue  // 跳过偶数
    }
    println("奇数: ${i}")
}

五、循环的实际应用场景 💡

5.1 数据处理

let scores = [85, 92, 78, 95, 88]
var total = 0

for (score in scores) {
    total += score
}

let average = total / scores.length
println("平均分: ${average}")

5.2 算法实现

示例:查找最大值

let numbers = [23, 45, 12, 67, 34, 89, 56]
var max = numbers[0]

for (num in numbers) {
    if (num > max) {
        max = num
    }
}
println("最大值: ${max}")

5.3 嵌套循环

// 打印乘法表
for (i in 1..=9) {
    for (j in 1..=i) {
        print("${j} × ${i} = ${i*j}\t")
    }
    println()
}

六、性能优化建议 ⚡

6.1 选择合适的循环类型

  • 已知迭代次数 → 使用 for 循环
  • 条件驱动 → 使用 while 循环
  • 集合遍历 → 使用 for-in 循环

6.2 避免常见陷阱

// ❌ 不推荐:在循环中修改集合大小
for (item in collection) {
    collection.remove(item)  // 可能导致错误
}

// ✅ 推荐:使用过滤或创建新集合
let filtered = collection.filter { item -> 
    // 条件判断
}

6.3 减少循环内的计算

// ❌ 不高效
for (i in 0..n) {
    let result = expensiveOperation()  // 每次都计算
    process(result)
}

// ✅ 更高效
let result = expensiveOperation()  // 只计算一次
for (i in 0..n) {
    process(result)
}

七、for vs while:如何选择? 🤔

特性 for循环 while循环
适用场景 迭代次数明确 条件驱动
代码简洁性 更简洁 较冗长
可读性 更直观 逻辑更灵活
遍历集合 非常适合 需要手动处理

八、总结 📝

仓颉语言的循环语句提供了:

灵活性 - 多种循环形式满足不同需求
简洁性 - 现代化的语法设计
强大性 - 丰富的控制流选项
安全性 - 类型安全的迭代机制

掌握循环语句是成为仓颉编程高手的重要一步!继续加油!💪🌟

Logo

新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐