内容正文:
5.6节:break语句和continue语句
C语言程序设计
电子工业出版社
理解 break 和 continue 语句的基本概念和作用
能够在编程中正确使用 break 和 continue 语句解决实际问题
培养逻辑思维能力和程序调试能力,提升代码优化意识
知识目标
能力目标
素养目标
01
01
01
学习目标
目录
Part 01
教学导入
Part 02
知识讲授
Part 03
师生互动
Part 04
课堂练习
Part 05
课堂小结
教学导入:思考一下
在循环结构中,我们如何灵活控制执行流程,实现以下需求?
需求一:提前结束
当满足某个特定条件时,不再执行后续的循环体,直接跳出并结束整个循环。
需求二:跳过本次
当满足某个特定条件时,跳过当前这一次循环体的剩余语句,直接开始下一次循环的判断。
思考:在你的编程经验中,哪些场景可能会用到这两种控制方式?
教学导入:生活中的例子
break 语句:停止循环
购物时,购物车满了就停止购物。这就像程序中的 break 语句,一旦满足条件,立即终止当前循环。
continue 语句:跳过当前
看书时,遇到不感兴趣的章节就跳过。这就像程序中的 continue 语句,跳过本次循环剩余部分,直接进入下一次循环。
教学导入
在C语言中,我们可以使用break和continue语句来实现类似的功能,从而更灵活地控制循环的执行流程。
break
强制跳出当前循环
continue
跳过本次循环剩余部分
核心作用:改变程序的正常执行顺序
知识讲授
break语句和continue语句
break语句
continue语句
第一部分
break语句
知识讲授
知识讲授:认识break语句
基本概念
break 语句用于立即终止当前所在的循环或 switch 语句,跳出循环体或 switch 体,程序流程继续执行后面的语句。
核心机制
它像一个“紧急出口”,一旦触发,立即中断当前逻辑流。常用于满足特定条件时提前退出,避免不必要的资源消耗。
记忆口诀:“说停就停,果断跳出” —— break 语句不做任何后续循环判断,直接终止并跳转。
知识讲授:break语句的一般形式
break;
语法说明
break 语句是一种跳转语句,其一般形式非常简洁,仅需关键字break后接分号即可。它的作用是立即终止并跳出当前所在的循环结构或 switch 分支结构。
知识讲授:break语句在循环中的应用
执行逻辑说明
当循环执行到break语句时,程序会发生以下行为:
立即跳出当前所在的循环结构
不再执行循环体中 break 之后的语句
不再进行下一次的循环条件判断
核心总结:break 语句的作用是“强制终止”,它直接中断循环流程,让程序流程跳转到循环结构之后的代码继续执行。
循环条件判断
真
假
退出循环
循环变量初始化
进入循环
循环体语句
无break语句
有break语句
知识讲授:计算正方形面积
核心知识点解析
1. 循环逻辑:使用 for 循环遍历边长 a (1-20),计算对应正方形面积 area。
2. 关键控制 (break):当面积 area 大于等于 80 时,执行 break 语句。
3. 程序终止:break 会立即跳出当前所在的 for 循环,程序继续执行循环体后的 return 语句。
Break 语句作用:强制终止当前循环(或 switch 语句),使程序流程跳转到循环体外的下一条语句。
知识讲授:计算正方形面积
程序文本:计算正方形的面积
#include"stdio.h"
main()
{ int a;
int area=0;
for(a=1;a<=20;a++)
{
area=a*a;
if(area>=80) break;
printf("area=%d
",area);
}
}
a<=20
真
假
输出:area
break;
area=a*a;
int num,area=0;
结束
开始
area>=80
真
a++;
知识讲授:计算正方形面积
知识讲授:break语句在switch语句中的应用
核心作用
在switch语句中,break语句用于跳出switch结构,避免执行后续的case分支。
执行流程
匹配成功的case语句执行完毕后,遇到break即终止整个switch,不再继续向下穿透。
程序代码
switch(表达式)
{
case常量表达式1: 语句1;break;
case常量表达式2: 语句2;break;
// ...
default: 语句n;break;
}
编程小贴士:虽然default分支通常在最后,但加上break是一个良好的编程习惯,能防止未来代码结构调整时出现逻辑错误。
知识讲授:break语句在嵌套循环中的应用
核心执行机制
在嵌套循环中,break语句遵循“就近原则”:
它仅能跳出包含它的最内层循环,外层循环会继续执行后续的迭代,不会受到内层break的影响。
满足break条件?
真
假
内循环开始
外循环开始
继续内循环
跳出内循环
继续外循环其他语句
知识讲授:break语句的注意事项
适用范围限制
break 语句并非在任何地方都能使用,它只能用于两种特定场景:
循环语句(for, while, do-while)
switch 分支语句
嵌套循环规则
在多层嵌套循环结构中,break 的作用范围具有局限性:
就近原则:它只能跳出包含它的最内层循环
无法直接跳出外层循环,需结合标签或标志位使用。
总结:合理使用 break 能让程序更高效,但必须注意其作用域,避免逻辑错误。在嵌套结构中,切勿期望 break 能一次性跳出所有循环。
背诵记忆
break 语句的作用
立即终止当前所在的循环或 switch 语句,程序流程跳转到循环或 switch 之后的语句继续执行。
主要使用场景
1. 循环控制:当满足特定条件时,提前结束整个循环,不再执行后续迭代。
2. Switch 分支:执行完匹配的 case 后跳出 switch 结构,避免“贯穿”执行后续 case。
记忆口诀:满足条件就“中断”,跳出循环和 switch。
例题分析
C语言循环控制代码示例:
#include <stdio.h>
main() {
int i;
for (i = 0; i < 5; i++) {
if (i == 3)break;
printf("%d ", i);
}
}
逻辑分析
程序执行for循环,当变量i递增到 3 时,触发break语句,循环立即终止,后续循环不再执行。
输出结果:0 1 2
课堂问答
Q: 核心问题
break语句在循环中的作用是什么?
A: 标准答案解析
break语句用于立即终止当前所在的循环,跳出循环体,继续执行循环体后面的语句。
课堂练习
练习要求
编写一个程序,输入一个正整数n,输出 1 到 n 之间所有能被 5 整除的数,遇到第一个大于 50 的数时停止输出。
核心考点提示
本题重点考察循环结构中的break 语句的使用。
当检测到数值大于 50 时,立即终止当前循环,不再继续后续输出。
逻辑步骤:
输入整数 n
遍历 1 到 n
能被5整除?
大于50则停止
课堂练习
程序文本
#include<stdio.h>
main()
{ int n,i;
printf("请输入一个正整数n:");
scanf("%d", &n);
for(i = 1; i <= n; i++) {
if(i % 5 == 0) {
printf("%d ", i);
if(i > 50)
break; }
}
}
循环遍历
使用 for 循环从 1 遍历到 n,覆盖所有可能值。
整除判断
利用 i % 5 == 0 筛选出能被 5 整除的数字。
强制中断
当数值超过 50 时,执行 break 跳出循环。
课堂练习
第二部分
知识讲授
continue语句
知识讲授:认识continue语句
基本概念
continue语句用于跳过当前循环迭代的剩余代码,直接进入下一次循环的条件判断。
执行流程对比
常规循环:条件判断 → 执行代码 → 增量更新
continue介入:条件判断 →遇到continue → 跳过剩余 →增量更新
核心区别:与 break 不同,continue 不会终止整个循环,而是终止当前迭代,程序依然会继续运行后续的循环。
知识讲授:continue语句的一般形式
continue;
语法说明:
continue 语句是一种循环控制语句,其语法结构非常简洁。仅由关键字continue和一个分号组成。
当程序执行到该语句时,会立即跳过当前循环中剩余的语句,直接开始下一次循环条件的判断。
知识讲授:continue语句的应用
真
假
循环结束
初始化循环变量
开始
循环条件判断
执行语句1;
是否含有continue语句
真
执行语句n;
改变循环变量值
假
……
核心机制解析
当循环执行到continue语句时,程序会立即:
跳过循环体中continue 之后的所有剩余语句
直接跳转回循环条件判断部分
根据判断结果决定是否开始下一次循环迭代
知识讲授:输出不能被7整除的数
核心逻辑:continue 语句
当 n 能被 7 整除时 (n%7==0),执行continue语句。
这会跳过当前循环中printf语句,直接进入下一次循环迭代。
执行流程解析
1. 循环变量 n 从 50 遍历到 70。
2. 遇到能被7整除的数(如56, 63, 70)时跳过输出。
3. 其他数字则通过 printf 正常输出。
真
假
输出:n
int n;
开始
n%7==0
真
假
n=50;
n<=70
结束
for
知识讲授:输出不能被7整除的数
程序文本【5.13】输出50~70不能被7整除的数。
#include"stdio.h"
main()
{ int n;
for(n=50; n<=70; n++)
{
if(n%7==0)
continue;
printf("%d\t", n);
}
}
知识讲授:输出不能被7整除的数
知识讲授:continue语句在嵌套循环中的应用
核心规则:在嵌套循环中,continue语句只能跳过包含它的最内层循环的本次迭代,外层循环不受影响继续执行。
for(外层循环) {
for(内层循环) {
if(条件) {
continue;// 仅跳过内层本次循环
}
}
}
外层循环:正常执行
内层循环:遇到 continue
结果:跳过内层剩余代码,进入内层下一轮
提示:continue 与 break 的区别在于,break 会跳出循环结构,而 continue 只是跳过当次迭代。
知识讲授:break和continue语句的区别
知识讲授:break和continue语句的区别
真
假
循环结束
初始化循环变量
开始
循环条件判断
执行语句1;
是否含有continue语句
真
执行语句n;
改变循环变量值
假
……
循环条件判断
真
假
退出循环
循环变量初始化
进入循环
循环体语句
无break语句
有break语句
背诵记忆
continue 语句的作用
跳过当前循环迭代的剩余代码,直接进入下一次循环的条件判断。这意味着它不会终止整个循环,而只是跳过当前这一轮。
典型使用场景
当需要跳过某些特定条件的循环迭代时使用。例如:在遍历列表时,过滤掉不符合条件的元素,不对其进行后续处理。
💡 记忆口诀:Continue 不终止,跳过本次往下走。
例题分析
程序文本
#include<stdio.h>
main()
{
int i;
for(i = 0; i < 5; i++)
{
if(i == 3)
continue;
printf("%d ", i);
}
}
运行结果分析
输出结果:0 1 2 4
解析:当 i == 3 时,执行 continue 语句跳过本次循环,不输出 3。
课堂问答
提问:continue 语句在循环中的作用是什么?
解析:continue 语句用于跳过当前循环迭代的剩余代码,直接进入下一次循环的条件判断。
课堂练习
题目要求:编写一个程序,输出 1 到 100 之间的所有奇数。
思考提示:请尝试使用continue语句来跳过偶数,从而实现奇数的输出。
真
假
输出:i
int i;
开始
i%2==0
真
假
i=1
i<=100
结束
continue;
课堂练习
程序文本:输出 1 到 100 之间的所有奇数
#include<stdio.h>
main()
{
int i;
for(i = 1; i <= 100; i++)
{
if(i % 2 == 0)
continue;
printf("%d ", i);
}
}
课堂练习
课堂小结
课堂小结
break 语句
用于强制终止整个循环或 switch 语句,程序流程跳出循环体。
continue 语句
用于跳过本次循环的剩余部分,直接进入并继续下一次循环。
核心区别
break 是彻底终止循环;
continue 是跳过本次循环。
记忆口诀:break 一声“咔嚓”断循环,continue 一声“继续”下一轮。
课后任务
题目一:筛选不能被3整除的数
编写一个程序,输入一个正整数 n,输出 1 到 n 之间所有不能被 3 整除的数。考察循环遍历与条件判断。
题目二:寻找首个能被5整除的数
输入一系列整数直到输入 0 为止,找出第一个能被 5 整除的数并输出;若未找到则输出“未找到”。考察循环控制与逻辑查找。
题目三:打印星号图案
使用嵌套循环打印金字塔形星号图案(如 *、**、*** 等),尝试使用 break 或 continue 控制流程。考察循环嵌套应用。
谢谢观看
THANKS
$