break与continue :分别用 while 和 for 各举至少一个例子,共4个示例,清晰展示两者的不同作用。
以下是整理后的文章:
五、循环语句
1. while循环:条件驱动的重复执行
1.1 核心作用
while 循环通过条件判断 控制代码块的重复执行------只要条件为 True,循环体就会持续运行,直到条件变为 False。它适合循环次数不确定的场景,需要手动管理三个关键要素:
初始表达式:循环开始前定义的变量(如计数器)
循环条件:每次迭代前判断的布尔表达式
更新表达式 :循环体内修改变量,使条件最终趋向 False
1.2 使用场景
次数不确定的重复任务(如用户输入验证、游戏循环)
需要持续执行直到满足特定条件的场景(如监控数据、轮询状态)
配合计数变量实现固定次数循环(与 for 功能互补)
1.3 案例:累加求和直到超过阈值
需求:从1开始累加正整数,直到总和首次超过100,输出此时的总和以及累加到的最后一个数。
python复制代码
# ---------- while 循环的三要素 ----------
# 1. 初始表达式
total = 0
num = 1
# 2. 循环条件:当总和 ≤ 100 时继续累加
while total <= 100:
total += num # 累加
# 3. 更新表达式:num 自增,使条件逐渐接近 False
num += 1
print(f"总和首次超过100时的值为:{total}")
print(f"此时累加到了数字:{num - 1}") # 因为最后一次累加后 num 又多加了1
运行结果:
1.4 关键注意点
必须包含更新表达式 (如 num += 1),否则循环条件永远为真 → 死循环
条件判断要合理,确保存在使条件变为 False 的可能
固定次数的循环优先使用 for(更简洁安全),while 更适合"直到某个条件达成"的场景
2. for循环:遍历驱动的高效迭代
2.1 Python的for与Java的for有什么不同?
如果你熟悉Java,Python的 for 循环不是 Java中的 for (初始化; 条件; 更新) 形式。Python的 for 本质上是一个 "迭代器循环" ,它直接遍历容器中的每一个元素,类似Java的 增强for循环(for-each):
java复制代码
// Java 增强for循环
int[] numbers = {1,2,3,4,5};
for (int n : numbers) {
System.out.println(n);
}
python复制代码
# Python for循环
numbers = [1,2,3,4,5]
for num in numbers:
print(num, end=' ')
上述两者完全等价!Python的 for 无需手动管理索引、条件判断和更新,它会自动按顺序取出可迭代对象(列表、字符串、range序列等)中的每一个元素。
2.2 如何实现"固定次数循环"?------ range() 函数
在Java中,固定次数循环常用 for (int i=0; i<10; i++)。Python中则使用 range() 生成一个数字序列:
python复制代码
# 写法一:range(stop) ------ 从0开始到stop-1
for i in range(10): # i = 0 1 2 3 4 5 6 7 8 9
print(i)
# 写法二:range(start, stop) ------ 从start到stop-1
for i in range(1, 11): # i = 1 2 3 4 5 6 7 8 9 10
print(i)
# 写法三:range(start, stop, step) ------ 指定步长
for i in range(0, 20, 2): # i = 0 2 4 6 8 10 12 14 16 18
print(i)
记忆技巧 :range(n) 会产生 n 个数,最后一个数是 n-1,这和Java的 for (int i=0; i<n; i++) 完全一致。
scores = []
pass_count = 0
fail_count = 0
total_score = 0
# 使用 for + range 实现固定次数循环
for i in range(10):
score = float(input(f"请输入第{i+1}个学生的成绩:"))
scores.append(score)
total_score += score
if score >= 60:
pass_count += 1
else:
fail_count += 1
# 计算平均分
average_score = total_score / len(scores)
print("\n===== 成绩统计结果 =====")
print(f"总人数:{len(scores)}人")
print(f"及格人数:{pass_count}人,不及格人数:{fail_count}人")
print(f"平均分:{average_score:.2f}分")
print(f"最高成绩:{max(scores)}分,最低成绩:{min(scores)}分")
2.5 拓展用法:遍历容器
python复制代码
# 1. 遍历列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(fruit)
# 2. 遍历字符串
word = "Hello"
for ch in word:
print(ch)
# 3. 遍历元组
numbers = (1, 2, 3)
for num in numbers:
print(num)
# 4. 遍历字典
person = {"name": "小明", "age": 18}
for key, value in person.items():
print(key, value)
3. break与continue:循环流程的控制开关
break 和 continue 可以在 while 和 for 循环中使用,用于改变循环的正常执行流程。下面分别用两种循环举例说明。
numbers = [12, 45, 78, 23, 56, 89, 34]
target = 56
found = False
for num in numbers:
if num == target:
print(f"找到目标数字:{target}")
found = True
break # 找到后直接终止循环,后面的元素不再检查
print(f"当前检查:{num}")
if not found:
print("未找到目标数字")
3.2 continue:跳过本次循环,进入下一次迭代
作用 :跳过当前循环中 continue 之后的所有代码,直接开始下一次循环迭代。
典型场景:过滤无效数据、跳过某些不需要处理的值。
示例1:while循环中使用 continue ------ 只处理1到10之间的偶数
python复制代码
num = 1
while num <= 10:
if num % 2 != 0: # 奇数
num += 1
continue # 跳过本次循环,不执行下方的打印
print(f"{num} 是偶数")
num += 1
示例2:for循环中使用 continue ------ 计算1-20之间所有偶数的和
python复制代码
sum_even = 0
for i in range(1, 21):
if i % 2 != 0:
continue # 奇数直接跳过,不累加
sum_even += i
print(f"1-20之间所有偶数的和:{sum_even}") # 输出:110