当前位置: 首页 > news >正文

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

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

用法说明

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

语法结构
do {// 循环体
} while (条件)

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

示例:输出1到10的数字

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

main() {var number = 0do {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 的阶乘的示例:

main() {var number = 0var factorial = 1do {number++factorial *= numberprintln("$(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。

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

解释:

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

输出结果:

找到的数字:23

使用 continue 跳过本次循环

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

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

main() {var number = 0do {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。

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

输出结果:

9    18    27    36    45

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

http://www.lryc.cn/news/448776.html

相关文章:

  • 在传销案件中数据库取证的分步指南
  • 数据结构与算法——Java实现 21.栈
  • 实验一 网络基础及仿真模拟软件Packet Tracer 入门
  • 建立分支提交代码
  • 认识 Linux操作系统
  • AI时代程序员的核心竞争力提升与保持之道
  • 状态模式原理剖析
  • 若伊(前后端分离)学习笔记
  • Elasticsearch学习笔记(2)
  • Vue devtools 插件
  • Ubuntu 16.04安装填坑记录
  • python的pyinstaller
  • Vue3(五) 组件通信大汇总
  • 红队信息搜集扫描使用
  • Python自学查漏9.28
  • Java文件I/O处理之RandomAccessFile【随意存取文件】
  • Android页面跳转与返回机制详解
  • Elasticsearch学习笔记(1)
  • react是一种语言?
  • 如何区分这个ip是真实ip,不是虚假的ip
  • 【软件测试】详解软件测试中的测试级别
  • 一条sql在MySQL中是怎么执行的
  • Git | Dockerized GitLab 安装使用(简单实操版)
  • SpringCloud简介 Ribbon Eureka 远程调用RestTemplate类 openfeign
  • 微信小程序开发系列之-微信小程序性能优化
  • 线程池面试集
  • 从密码学看盲拍合约:智能合约的隐私与安全新革命!
  • c++学习笔记(47)
  • 软件设计之SSM(1)
  • STM32F745IE 能进定时器中断,无法进主循环