华为仓颉语言入门(7):深入理解 do-while 循环及其应用

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

用法说明

do-while 表达式是一种控制循环的结构,它允许代码在每次循环之后进行条件判断。在这个表达式中,无论条件一开始是否满足,代码块都会被至少执行一次。

语法结构
cangjie 复制代码
do {
    // 循环体
} while (条件)

条件的判断发生在每次循环执行后。如果条件为 true,则循环继续;如果条件为 false,循环终止。因此,do-while 能确保代码块至少被执行一次。

示例:输出1到10的数字

通过 do-while 表达式,可以实现从1到10的数字输出,代码如下:

cangjie 复制代码
main() {
    var number = 0
    do {
        number++
        print("$(number)\t")
    } while (number < 10)
}

解释:

  • 初始化 number 为 0,之后每次循环 number 自增1并输出。
  • number 小于10时,继续循环,直到达到10停止。

输出结果:

复制代码
1    2    3    4    5    6    7    8    9    10

用 do-while 计算阶乘

除了输出数字,do-while 还可以用来计算阶乘。下面是使用 do-while 计算 1 到 10 的阶乘的示例:

cangjie 复制代码
main() {
    var number = 0
    var factorial = 1
    do {
        number++
        factorial *= number
        println("$(number)! = $(factorial)")
    } while (number < 10)
}

解释:

  • factorial 被初始化为1。
  • 每次循环中,number 递增,并将 factorial 乘以 number,输出当前阶乘。

输出结果:

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

使用 break 提前终止循环

在某些情况下,我们可能需要根据特定条件提前结束循环。此时可以使用 break 表达式,它允许立即跳出循环。

例如,下面的代码寻找一个10到100之间满足以下条件的最小数字:被3除余2且被5除余3。

cangjie 复制代码
main() {
    var counter = 10
    do {
        if ((counter % 3 == 2) && (counter % 5 == 3)) {
            break
        } else {
            counter++
        }
    } while (true)
    println("找到的数字:$(counter)")
}

解释:

  • counter = 10 开始,循环检查是否符合条件。
  • 满足条件时,使用 break 跳出循环,输出结果。

输出结果:

复制代码
找到的数字:23

使用 continue 跳过本次循环

在循环中,continue 表达式可以用来跳过当前的某次迭代,直接进入下一次循环。

例如,下面的代码只输出1到20之间的偶数。

cangjie 复制代码
main() {
    var number = 0
    do {
        number++
        if (number % 2 != 0) {
            continue // 跳过奇数
        }
        print("$(number)\t")
    } while (number < 20)
}

解释:

  • 每次循环时,number 递增,检查是否为偶数。
  • 如果 number 是奇数,跳过当前迭代,直接进入下一个循环。

输出结果:

复制代码
2    4    6    8    10    12    14    16    18    20

处理剩余的练习

练习 1 :使用 do-while 输出1到50之间所有的9的倍数,包含9。

cangjie 复制代码
main() {
    var number = 9
    do {
        if (number % 9 == 0) {
            print("$(number)\t")
        }
        number++
    } while (number <= 50)
}

输出结果:

复制代码
9    18    27    36    45

此代码会检查 number 是否是9的倍数,并在满足条件时输出对应的数字。

相关推荐
2201_757830873 小时前
全局异常处理器
java
小徐Chao努力5 小时前
【Langchain4j-Java AI开发】09-Agent智能体工作流
java·开发语言·人工智能
Coder_Boy_5 小时前
SpringAI与LangChain4j的智能应用-(理论篇3)
java·人工智能·spring boot·langchain
Coder_Boy_5 小时前
基于SpringAI的智能平台基座开发-(六)
java·数据库·人工智能·spring·langchain·langchain4j
热爱专研AI的学妹6 小时前
数眼搜索API与博查技术特性深度对比:实时性与数据完整性的核心差异
大数据·开发语言·数据库·人工智能·python
hopsky6 小时前
ShardingSphere功能简介
数据库·sql
talenteddriver6 小时前
mysql: MySQL索引和排序相关名词概念汇总
数据库·mysql
伯明翰java6 小时前
Java数据类型与变量
java·开发语言
6极地诈唬6 小时前
【PG漫步】DELETE不会改变本地文件的大小,VACUUM也不会
linux·服务器·数据库
想用offer打牌6 小时前
如何开启第一次开源贡献之路?
java·后端·面试·开源·github