循环语句 #
一、for循环 #
1.1 基本语法 #
mojo
def main():
for i in range(5):
print(i)
main()
1.2 遍历列表 #
mojo
def main():
let fruits = ["apple", "banana", "orange"]
for fruit in fruits:
print(fruit)
main()
1.3 遍历字典 #
mojo
def main():
let scores = {"Alice": 95, "Bob": 87, "Charlie": 92}
for name, score in scores.items():
print(f"{name}: {score}")
main()
1.4 遍历字符串 #
mojo
def main():
let text = "Mojo"
for char in text:
print(char)
main()
1.5 带索引遍历 #
mojo
def main():
let fruits = ["apple", "banana", "orange"]
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
main()
1.6 并行遍历 #
mojo
def main():
let names = ["Alice", "Bob", "Charlie"]
let ages = [25, 30, 35]
for name, age in zip(names, ages):
print(f"{name} is {age}")
main()
二、while循环 #
2.1 基本语法 #
mojo
def main():
var count = 0
while count < 5:
print(count)
count += 1
main()
2.2 条件循环 #
mojo
def main():
var total = 0
var num = 1
while total < 100:
total += num
num += 1
print(f"Total: {total}")
main()
2.3 无限循环 #
mojo
def main():
while True:
let input = get_input()
if input == "quit":
break
process(input)
main()
2.4 带else的while #
mojo
def main():
var count = 0
while count < 5:
print(count)
count += 1
else:
print("循环结束")
main()
三、循环控制 #
3.1 break语句 #
mojo
def main():
for i in range(10):
if i == 5:
break
print(i)
print("循环结束")
main()
3.2 continue语句 #
mojo
def main():
for i in range(10):
if i % 2 == 0:
continue
print(i)
main()
3.3 pass语句 #
mojo
def main():
for i in range(5):
pass
print("循环完成")
main()
3.4 嵌套循环控制 #
mojo
def main():
for i in range(3):
for j in range(3):
if i == 1 and j == 1:
break
print(f"({i}, {j})")
main()
四、range函数 #
4.1 基本用法 #
mojo
def main():
for i in range(5):
print(i)
main()
4.2 指定范围 #
mojo
def main():
for i in range(2, 8):
print(i)
main()
4.3 指定步长 #
mojo
def main():
for i in range(0, 10, 2):
print(i)
main()
4.4 反向范围 #
mojo
def main():
for i in range(10, 0, -1):
print(i)
main()
五、列表推导式 #
5.1 基本语法 #
mojo
def main():
let squares = [x * x for x in range(5)]
print(squares)
main()
5.2 带条件 #
mojo
def main():
let evens = [x for x in range(20) if x % 2 == 0]
print(evens)
main()
5.3 嵌套推导 #
mojo
def main():
let matrix = [[i * j for j in range(3)] for i in range(3)]
print(matrix)
main()
5.4 字典推导式 #
mojo
def main():
let squares = {x: x * x for x in range(5)}
print(squares)
main()
六、循环最佳实践 #
6.1 避免修改迭代对象 #
mojo
def main():
var numbers = [1, 2, 3, 4, 5]
var to_remove = []
for num in numbers:
if num % 2 == 0:
to_remove.append(num)
for num in to_remove:
numbers.remove(num)
print(numbers)
main()
6.2 使用enumerate #
mojo
def main():
let items = ["a", "b", "c"]
for i, item in enumerate(items):
print(f"Index {i}: {item}")
main()
6.3 提前计算长度 #
mojo
def main():
let items = [1, 2, 3, 4, 5]
let n = len(items)
for i in range(n):
print(items[i])
main()
6.4 使用生成器 #
mojo
def fibonacci(n: Int):
var a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
def main():
for num in fibonacci(10):
print(num)
main()
七、性能优化 #
7.1 减少循环内计算 #
mojo
def main():
let data = [1, 2, 3, 4, 5]
let multiplier = 10
for num in data:
print(num * multiplier)
main()
7.2 向量化操作 #
mojo
from SIMD import SIMD
def main():
let data = SIMD[DType.float64, 4](1.0, 2.0, 3.0, 4.0)
let result = data * 2.0
print(result)
main()
7.3 并行处理 #
mojo
def main():
let data = [1, 2, 3, 4, 5, 6, 7, 8]
for i in range(0, len(data), 2):
let a = data[i]
let b = data[i + 1]
print(a + b)
main()
八、常见模式 #
8.1 计数模式 #
mojo
def main():
var count = 0
for item in [1, 2, 3, 4, 5]:
if item > 2:
count += 1
print(f"Count: {count}")
main()
8.2 累加模式 #
mojo
def main():
var total = 0
for num in [1, 2, 3, 4, 5]:
total += num
print(f"Total: {total}")
main()
8.3 查找模式 #
mojo
def main():
let data = [1, 2, 3, 4, 5]
var found = -1
for i, num in enumerate(data):
if num == 3:
found = i
break
print(f"Found at: {found}")
main()
8.4 过滤模式 #
mojo
def main():
let data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let filtered = [x for x in data if x % 2 == 0]
print(filtered)
main()
九、总结 #
本章学习了:
- for循环遍历
- while条件循环
- break和continue控制
- range函数
- 列表推导式
- 循环最佳实践
- 性能优化
下一章,我们将学习函数基础。
最后更新:2026-03-27