第5篇:循环语句——重复执行任务 生中文编程
本文介绍了编程中的循环语句概念,主要讲解了for循环和while循环的使用方法。for循环适用于已知重复次数的情况,如打印1到10的数字;while循环则用于不确定次数的情况,如密码验证。文章还介绍了控制循环的break和continue语句,以及嵌套循环的应用。通过多个生动示例(如九九乘法表、图形打印和猜数字游戏)演示了循环的实际应用。最后讨论了编程语言设计中循环语句的中文化可能性,但肯定了仓颉
第5篇:循环语句——重复执行任务
**作者:**中文编程倡导者—— 李金雨
联系方式: wbtm2718@qq.com
**目标读者:**编程入门(零基础)
核心理念: 使用华为仓颉原生中文编程,体验真正的国产编程语言
一、开篇引入
1.1 生活中的"重复"
生活中有很多重复的事情:
- 每天早上重复刷牙、洗脸、吃早餐
- 体育课重复做10个俯卧撑
- 老师让我们重复抄写课文3遍
- 妈妈让你重复说"对不起"直到她满意
1.2 程序中的"重复"
计算机最擅长做重复的事情!我们可以让程序:
- 重复计算100个学生的平均分
- 重复打印100行"我爱编程"
- 重复检查用户输入直到正确
1.3 关于循环语法的思考
在学习循环之前,我们再聊聊仓颉的语法设计。
仓颉的循环语句使用了国际通用的关键字:
// for循环
for (i in 0..10) {
// 代码
}
// while循环
while (条件) {
// 代码
}
这些关键字for、while、in都是国际通用的,大家都能看懂。
1.4 本课目标
今天我们要学习:
for循环——知道次数的循环while循环——不知道次数的循环break和continue——控制循环- 嵌套循环
- 做一个乘法表生成器
二、概念讲解
2.1 for循环——知道次数时用
基本语法
for (变量 in 范围) {
// 重复执行的代码
}
代码示例:打印1到10
main() {
for (i in 0..10) {
println("当前数字:${i}")
}
}
执行过程:
- i = 0,执行代码
- i = 1,执行代码
- …
- i = 10,执行代码
- 结束
代码示例:计算1到100的和
main() {
var 总和: Int64 = 0
for (i in 1..101) {
总和 = 总和 + i
}
println("1到100的和是:${总和}")
}
2.2 while循环——不知道次数时用
基本语法
while (条件) {
// 条件为true时重复执行
}
代码示例:用户输入验证
main() {
var 密码正确: Bool = false
var 尝试次数: Int64 = 0
while (!密码正确 && 尝试次数 < 3) {
println("请输入密码:")
// 这里模拟输入
let 输入的密码: String = "123456"
if (输入的密码 == "123456") {
密码正确 = true
println("密码正确!")
} else {
尝试次数 = 尝试次数 + 1
println("密码错误,还剩${3 - 尝试次数}次机会")
}
}
if (!密码正确) {
println("尝试次数用尽,账户已锁定")
}
}
2.3 break和continue——控制循环
break——跳出循环
main() {
for (i in 1..101) {
if (i == 50) {
println("到50了,停止!")
break // 跳出循环
}
println("${i}")
}
}
continue——跳过本次
main() {
for (i in 1..11) {
if (i == 5) {
continue // 跳过5,继续下一次
}
println("${i}")
}
}
2.4 嵌套循环——循环里面还有循环
代码示例:打印乘法表
main() {
for (i in 1..10) {
for (j in 1..(i + 1)) {
print("${j}×${i}=${i * j}\t")
}
println("")
}
}
输出结果:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
...
三、动手实践
3.1 基础练习:九九乘法表
// 九九乘法表
main() {
println("=== 九九乘法表 ===")
println("")
for (i in 1..10) {
for (j in 1..(i + 1)) {
print("${j}×${i}=${i * j}\t")
}
println("")
}
}
3.2 进阶练习:打印图形
// 打印各种图形
main() {
println("=== 图形打印 ===")
println("")
// 打印直角三角形
println("【直角三角形】")
for (i in 1..6) {
for (j in 1..(i + 1)) {
print("* ")
}
println("")
}
println("")
// 打印等腰三角形
println("【等腰三角形】")
let 高度: Int64 = 5
for (i in 1..(高度 + 1)) {
// 打印空格
for (k in 1..(高度 - i + 1)) {
print(" ")
}
// 打印星号
for (j in 1..(2 * i - 1 + 1)) {
print("*")
}
println("")
}
println("")
// 打印菱形
println("【菱形】")
let 菱形高度: Int64 = 5
// 上半部分
for (i in 1..(菱形高度 + 1)) {
for (k in 1..(菱形高度 - i + 1)) {
print(" ")
}
for (j in 1..(2 * i - 1 + 1)) {
print("*")
}
println("")
}
// 下半部分
for (i in (菱形高度 - 1)..0) {
for (k in 1..(菱形高度 - i + 1)) {
print(" ")
}
for (j in 1..(2 * i - 1 + 1)) {
print("*")
}
println("")
}
}
3.3 挑战练习:猜数字游戏
// 猜数字游戏
import std.random.*
main() {
println("=== 猜数字游戏 ===")
println("我已经想好了一个1-100之间的数字")
println("你来猜,我会提示"大了"或"小了"")
println("")
// 生成随机数
let 目标数字: Int64 = randomInt(1, 101)
var 猜测次数: Int64 = 0
var 猜对了: Bool = false
while (!猜对了) {
println("请输入你的猜测:")
// 这里模拟输入
let 猜测: Int64 = 50 // 假设输入50
猜测次数 = 猜测次数 + 1
if (猜测 == 目标数字) {
println("恭喜你,猜对了!")
println("你一共猜了${猜测次数}次")
猜对了 = true
} else if (猜测 < 目标数字) {
println("小了,再大一点")
} else {
println("大了,再小一点")
}
}
// 评价
if (猜测次数 <= 3) {
println("评价:太厉害了!")
} else if (猜测次数 <= 6) {
println("评价:还不错!")
} else {
println("评价:还需要练习哦")
}
}
四、知识总结
4.1 核心概念回顾
- for循环:知道次数时用
- while循环:不知道次数时用
- break:跳出循环
- continue:跳过本次,继续下一次
- 嵌套循环:循环里面还有循环
4.2 关于语法设计的总结
仓颉的循环语句使用了国际通用的for和while关键字,这是一个比较务实的选择。
如果我们设计纯中文编程语言:
// 设想中的中文语法
重复 (i 从 1 到 10) {
显示(i)
}
// 或者
当 (条件满足) {
执行代码
}
当然,使用国际通用关键字也有好处,仓颉的选择是合理的。
4.3 关键代码速查
// for循环
for (i in 0..10) {
// 代码
}
// while循环
while (条件) {
// 代码
}
// break
break
// continue
continue
4.4 常见错误提醒
| 错误现象 | 原因 | 解决方法 |
|---|---|---|
| 死循环 | 条件永远为true | 确保条件会变为false |
| 循环不执行 | 条件一开始就是false | 检查初始条件 |
| 循环次数不对 | 范围写错 | 检查范围 |
五、课后作业
5.1 巩固练习(必做)
练习1:计算阶乘
输入一个数字n,计算n的阶乘(n! = 1×2×3×…×n)。
练习2:判断素数
输入一个数字,判断是否为素数(只能被1和自身整除的数)。
练习3:打印金字塔
输入层数,打印金字塔形状。
5.2 创意编程(选做)
创意1:数字炸弹
多人游戏,轮流猜数字,猜中炸弹数字的人输。
创意2:简易计算器
实现支持连续运算的计算器。
创意3:动画效果
用循环实现简单的文字动画效果。
5.3 下篇预习
下一篇,我们将学习数据列表——数组,学习如何存储和操作多个数据。
恭喜你完成了第5篇的学习! 🎉
现在你已经掌握了循环语句,可以让程序重复执行任务了!
下节课,我们将学习数组,存储和操作多个数据!
更多推荐

所有评论(0)