华为仓颉语言入门(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的倍数,并在满足条件时输出对应的数字。

相关推荐
小白的代码日记13 分钟前
java-反射精讲
java·开发语言
MaCa .BaKa24 分钟前
37-智慧医疗服务平台(在线接诊/问诊)
java·vue.js·spring boot·tomcat·vue·maven
碎梦归途32 分钟前
23种设计模式-行为型模式之模板方法模式(Java版本)
java·开发语言·jvm·设计模式·软考·模板方法模式·软件设计师
八股文领域大手子38 分钟前
Spring Boot Controller 如何处理HTTP请求体
java·开发语言·sql·spring·spring cloud
tanxiaomi39 分钟前
Java中对象集合转换的优雅实现【实体属性范围缩小为vo】:ListUtil.convert方法详解
java·spring boot·mybatis
odng40 分钟前
请求从发送到页面渲染的全过程
java
AI大模型顾潇40 分钟前
[特殊字符] Milvus + LLM大模型:打造智能电影知识库系统
数据库·人工智能·机器学习·大模型·llm·llama·milvus
某不知名網友44 分钟前
linux_进程地址空间(虚拟地址空间)
java·linux·算法
鸿蒙布道师1 小时前
鸿蒙NEXT开发动画案例3
android·ios·华为·harmonyos·鸿蒙系统·arkui·huawei
鸿蒙布道师1 小时前
AI原生手机:三大技术阵营的终极对决与未来展望
android·人工智能·ios·华为·智能手机·ai-native·hauwei