解锁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
,表示是否找到符合条件的数字。 - 当
flag
为false
时,继续循环;找到数字后,将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
退出循环。