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

相关推荐
若鱼191914 分钟前
SpringBoot4.0新特性-Observability让生产环境更易于观测
java·spring
倒流时光三十年17 分钟前
SpringBoot 数据库同步 Elasticsearch 性能优化
数据库·spring boot·elasticsearch
觉醒大王23 分钟前
强女思维:着急,是贪欲外显的相。
java·论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
努力学编程呀(๑•ี_เ•ี๑)31 分钟前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea
小镇敲码人40 分钟前
深入剖析华为CANN框架下的Ops-CV仓库:从入门到实战指南
c++·python·华为·cann
码农小卡拉40 分钟前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot
怣501 小时前
MySQL多表连接:全外连接、交叉连接与结果集合并详解
数据库·sql
向上的车轮1 小时前
为什么.NET(C#)转 Java 开发时常常在“吐槽”Java:checked exception
java·c#·.net
Dragon Wu1 小时前
Spring Security Oauth2.1 授权码模式实现前后端分离的方案
java·spring boot·后端·spring cloud·springboot·springcloud
跳动的梦想家h1 小时前
环境配置 + AI 提效双管齐下
java·vue.js·spring