第17集:循环控制break和continue
本集学习目标
- 理解break语句的作用
- 理解continue语句的作用
- 掌握break和continue的区别
- 学会在循环中使用break和continue
- 通过实际练习掌握循环控制语句
什么是循环控制语句?
循环控制语句用于改变循环的正常执行流程。Python中常用的循环控制语句有:
break:立即退出循环continue:跳过本次循环,继续下一次循环
流程对比
正常循环:
开始 → 判断条件 → 执行循环体 → 更新变量 → 回到判断条件 → 结束使用break:
开始 → 判断条件 → 执行循环体 → 遇到break → 退出循环 → 结束使用continue:
开始 → 判断条件 → 执行循环体 → 遇到continue → 跳过本次 → 继续下一次break语句
什么是break?
break用于立即退出循环,不管循环条件是否为True。
示例1:break的基本使用
for i in range(1, 10):
if i == 5:
break # 当i等于5时,退出循环
print(i)
print("循环结束")输出:
1
2
3
4
循环结束解释:当i等于5时,执行break,立即退出循环。
示例2:查找元素
numbers = [1, 3, 5, 7, 9]
target = 5
for num in numbers:
if num == target:
print(f"找到{target}!")
break
print(f"检查{num}...")输出:
检查1...
检查3...
找到5!示例3:密码验证(最多3次)
correct_password = "123456"
max_attempts = 3
for attempt in range(max_attempts):
password = input("请输入密码:")
if password == correct_password:
print("登录成功!")
break # 登录成功,退出循环
remaining = max_attempts - attempt - 1
if remaining > 0:
print(f"密码错误!还有{remaining}次机会")
else:
print("密码错误!机会用完")示例4:在while循环中使用break
count = 0
while True: # 无限循环
print(count)
count += 1
if count >= 5:
break # 当count>=5时退出循环
print("循环结束")continue语句
什么是continue?
continue用于跳过本次循环,直接进入下一次循环。
示例5:continue的基本使用
for i in range(1, 6):
if i == 3:
continue # 跳过i=3的情况
print(i)输出:
1
2
4
5解释:当i等于3时,执行continue,跳过本次循环,不打印3。
示例6:只打印偶数
for i in range(1, 11):
if i % 2 != 0:
continue # 跳过奇数
print(i)输出:
2
4
6
8
10示例7:过滤无效数据
numbers = [1, 2, 0, 3, -1, 4, 5]
for num in numbers:
if num <= 0: # 过滤掉0和负数
continue
print(num)输出:
1
2
3
4
5示例8:在while循环中使用continue
count = 0
while count < 10:
count += 1
if count % 2 == 0:
continue # 跳过偶数
print(count)输出:
1
3
5
7
9break和continue的区别
| 特点 | break | continue |
|---|---|---|
| 作用 | 退出循环 | 跳过本次循环 |
| 影响范围 | 整个循环 | 本次循环 |
| 后续代码 | 不执行本次循环中break后的代码 | 不执行本次循环中continue后的代码 |
| 循环次数 | 可能少于预期次数 | 循环次数不变 |
示例对比
使用break:
for i in range(1, 10):
if i == 5:
break
print(i)输出:1, 2, 3, 4(共4次循环)
使用continue:
for i in range(1, 10):
if i == 5:
continue
print(i)输出:1, 2, 3, 4, 6, 7, 8, 9(共9次循环,跳过第5次)
实际应用案例
案例1:查找第一个满足条件的元素
numbers = [10, 20, 30, 40, 50]
threshold = 25
for num in numbers:
if num > threshold:
print(f"第一个大于{threshold}的数字是:{num}")
break输出:
第一个大于25的数字是:30案例2:用户输入验证
while True:
user_input = input("请输入一个正整数(输入0退出):")
if user_input == '0':
print("退出程序")
break
try:
num = int(user_input)
if num <= 0:
print("请输入正整数!")
continue
print(f"你输入的数字是:{num}")
except ValueError:
print("请输入有效的数字!")
continue案例3:处理列表中的错误数据
data = ["apple", 42, "banana", "error", "cherry"]
for item in data:
# 如果是字符串"error",跳过
if isinstance(item, str) and item == "error":
print(f"跳过错误数据:{item}")
continue
# 如果不是字符串,跳过
if not isinstance(item, str):
print(f"跳过非字符串数据:{item}")
continue
print(f"处理:{item}")输出:
处理:apple
跳过非字符串数据:42
处理:banana
跳过错误数据:error
处理:cherry案例4:猜数字游戏(限制次数)
import random
target = random.randint(1, 100)
max_attempts = 7
print("猜数字游戏(1-100),最多猜7次")
for attempt in range(max_attempts):
guess = int(input(f"第{attempt+1}次猜测:"))
if guess == target:
print(f"恭喜你猜对了!用了{attempt+1}次")
break
if guess < target:
print("太小了!")
else:
print("太大了!")
remaining = max_attempts - attempt - 1
if remaining > 0:
print(f"还有{remaining}次机会")
else:
print(f"很遗憾,正确答案是{target}")嵌套循环中的break和continue
示例9:break在嵌套循环中
for i in range(1, 4):
print(f"\n外层循环 i = {i}")
for j in range(1, 4):
if j == 2:
print(f" 内层:遇到j=2,退出内层循环")
break
print(f" 内层循环 j = {j}")输出:
外层循环 i = 1
内层循环 j = 1
内层:遇到j=2,退出内层循环
外层循环 i = 2
内层循环 j = 1
内层:遇到j=2,退出内层循环
外层循环 i = 3
内层循环 j = 1
内层:遇到j=2,退出内层循环示例10:continue在嵌套循环中
for i in range(1, 4):
print(f"\n外层循环 i = {i}")
for j in range(1, 4):
if j == 2:
print(f" 内层:遇到j=2,跳过")
continue
print(f" 内层循环 j = {j}")输出:
外层循环 i = 1
内层循环 j = 1
内层:遇到j=2,跳过
内层循环 j = 3
外层循环 i = 2
内层循环 j = 1
内层:遇到j=2,跳过
内层循环 j = 3
外层循环 i = 3
内层循环 j = 1
内层:遇到j=2,跳过
内层循环 j = 3本集小结
- break:立即退出整个循环
- continue:跳过本次循环,继续下一次
- break影响整个循环,continue只影响本次循环
- break和continue可以用于for循环和while循环
- 在嵌套循环中,break和continue只影响当前层级的循环
- 合理使用break和continue可以提高代码效率
- 避免过度使用break和continue,以免影响代码可读性
课后练习
练习1:使用break
找到列表中第一个大于10的数字。
numbers = [1, 5, 8, 12, 15, 20]
# 找到第一个大于10的数字并输出练习2:使用continue
打印1-10中的所有奇数。
# 打印1-10中的奇数,使用continue跳过偶数练习3:猜数字
编写猜数字游戏,最多猜5次。
import random
target = random.randint(1, 100)
# 你的代码在这里练习4:密码验证
编写密码验证程序,正确密码是"python123",最多尝试3次。
# 你的代码在这里练习5:过滤数据
给定一个列表,过滤掉所有负数和0,只打印正数。
numbers = [1, -2, 0, 3, -4, 5, -6, 7]
# 只打印正数下集预告
下一集我们将学习第18集:循环嵌套。循环嵌套是指在一个循环中再包含另一个循环,可以实现更复杂的逻辑。
敬请期待!