华为仓颉语言入门(8):while 表达式的使用

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界

while 表达式是仓颉语言中最常用的循环结构之一,其基本结构允许在条件为 true 时重复执行代码块。与 do-while 不同,while 表达式在每次执行循环体之前先检查条件。如果条件为 true,则执行循环;如果条件为 false,则跳出循环,不再执行任何循环体代码。

语法格式:
while (循环条件) {
    // 循环体
}

在这个结构中,条件是每次循环之前进行判断的,因此如果条件一开始为 false,循环体代码将不会执行一次。

示例:使用 while 计算阶乘

通过修改 do-while 的例子,我们可以使用 while 表达式来计算1到10的阶乘。代码如下:

main() {
    var number = 0
    var factorial = 1
    while (number < 10) {
        number++
        factorial *= number
        println("$(number)! = $(factorial)")
    }
}

输出结果:

1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800

解释:

  • 在每次循环中,number 自增,factorial 乘以 number
  • number 达到 10 后,循环结束,输出1到10的阶乘结果。

在循环中使用标志

在某些情况下,循环条件可能较为复杂,或者条件不够明确,此时可以使用一个布尔类型的变量作为标志来控制循环。例如,在之前的例子中,我们可以增加一个标志 flag,用来标识是否找到了满足条件的数字。

下面的代码在10到100之间查找满足条件的最小整数:被3除余2且被5除余3。

main() {
    var counter = 10
    var flag = false // 标志是否找到满足条件的数
    while (!flag) {
        if ((counter % 3 == 2) && (counter % 5 == 3)) {
            flag = true // 找到满足条件的数时,标志设为 true
        } else {
            counter++
        }
    }
    println("满足要求的数字:$(counter)")
}

输出结果:

满足要求的数字:23

解释:

  • 初始化一个布尔变量 flag,表示是否找到符合条件的数字。
  • flagfalse 时,继续循环;找到数字后,将 flag 设置为 true,停止循环。

在 while 循环中使用 break 和 continue 表达式

while 循环中可以使用 break 表达式提前终止循环,或者使用 continue 表达式跳过当前循环的剩余部分,直接进入下一次迭代。

以下示例用 while 表达式寻找 1 到 100 之间6的倍数,并计算这些倍数的和。当和达到10的倍数时,使用 break 终止循环。

main() {
    var counter = 0
    var sum = 0 // 用于计算6的倍数之和
    while (true) {
        counter++
        if (counter % 6 != 0) {
            continue // 跳过非6的倍数
        }
        sum += counter
        if (sum % 10 == 0) {
            break // 当和为10的倍数时,终止循环
        }
    }
    println("从6的倍数加到$(counter / 6)倍的和为:$(sum)")
}

输出结果:

从6的倍数加到6倍的和为:60

解释:

  • 循环从 counter 的值1开始,每次递增。
  • 如果 counter 不是6的倍数,则使用 continue 跳过当前循环。
  • 如果和达到了10的倍数,使用 break 退出循环。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值