当前课程知识点:高级语言程序设计 >  循环结构程序设计 >  4.6 如何提前终止循环和提前结束本次循环 >  如何提前终止循环和提前结束本次循环

返回《高级语言程序设计》慕课在线视频课程列表

如何提前终止循环和提前结束本次循环在线视频

如何提前终止循环和提前结束本次循环

下一节:数组类型的引入

返回《高级语言程序设计》慕课在线视频列表

如何提前终止循环和提前结束本次循环课程教案、知识点、字幕

同学们好

在用循环结构解决问题的时候

可能有的时候要遇到我们要提前终止循环

有的时候我们要提前结束本次的循环

这个后面我们会举例子给大家看一下

那么这两个操作该怎么样实现呢

今天这节课我们和大家一起来学习

两个控制语句

一个控制语句是break

它的作用是可以提前终止循环

第二个控制语句就是continue

它的作用是提前结束本次循环

下面我们先来看break语句

这个break语句

一般情况下在循环体里面

与这个if条件一起来使用用来终止循环

也就是说在循环体里

当这个if条件满足就跳出循环

大家可以看一下这个流程图

在循环控制这一块里

表达式1是循环条件

表达式2是if条件

当if条件满足则执行break语句

跳出循环

我们来举个例子来看一下

这个例子是这样的

要读入一批正整数

编程进行计算

并且输出

这批正整数的个数与和

那么要求我输入的这个数据为负数或零的时候

程序就立即终止

那么这个问题

要根据用户的这个输入的情况

才能知道这批正整数的个数

也就是说这个循环的次数

我们事先是不知道的

我们没有办法

根据循环的次数来跳出循环

所以只有通过这个if的条件

通过输入负数或者0

利用break语句来终止循环

那么下面我们来看一下这个程序

在这个程序里面

我们定义了几个变量

变量n是每次输入的数据

这个变量sum是求的和

变量i就是这个正整数的个数

因为初始情况下

没有1个正整数

所以i的初值为0

sum的初值也为0

接下来我们写一个while循环语句

这个while循环语句的循环条件写的是1

大家看到没有

写的是1

也就是说条件永真

也就是说如果按照这个循环条件来看

我们可以不断的执行下去

无限的循环下去

当然这肯定是不现实的

那么这个循环既然不能无限循环下去

怎么样跳出呢

我们进循环体看一下

进了循环体之后

我们要输入n的值

然后来判断这个n的值是不是正数

如果它是大于零的正数

那么它就跳过break继续计算

那么统计这个个数的值

就是变量i要做加1运算

i等于1然后再求和

好接着下一次

我们再进这个循环

循环条件还是1

那么进来之后

再一次输入变量n的值

然后再判断n是否是大于零的正数

这样不停的循环下去

那么直到某一次循环的时候

输入n的值

是小于或者等于0的数

它就满足循环里面的这个if条件

它就会执行break

一旦遇到break

循环提前终止

所以虽然循环条件写的是1永真

但是我们的循环遇到break

循环体遇到break提前终止

最后输出这个正整数的个数

也就是i的值

还有求的和也就是sum的值

好这是一个例子

下面我们再来看一个例子

我们经常会遇到

要判断一个正整数是否是素数

那么这个正整数是m

那么如果这个数是素数的话

它除了1和它本身之外

它不能被其他任何正整数整除

所以我们可以用2一直到m减1

这个范围的这些数去除m

如果m能够被2到m-1

之中的任何一个整数整除

那我们就提前结束循环

那么提前结束循环这个时候

m就可以判断它不是素数

那么这个时候要注意了

循环条件i的值小于等于m-1

如果m不能被2到m减1之间的任意一个整数整除

那么我们在完成最后一次循环之后

i的值它肯定是m

那表明m没有被

2到m减1之间任何一个整数整除过

那么这个m就是素数

好下面我们来看这样一个程序

这个程序里面

变量m和i是一个正整数

i是控制循环的变量

它从2一直到m-1

中间每执行1次循环i++

在这个循环体里面

我们用m与i做求余运算

再和0判断是否相等

如果相等它就执行break跳出循环

如果不相等它就不用执行break

一直到循环结束

那么在这个循环结束之后

我们来判断i是不是大于等于m的

这个时候我们要注意

为什么要等循环跳出判断

i是不是大于等于m呢

如果这个时候i大于等于m

那m就是素数

如果i小于m

显然m就不是素数

因为当i大于等于m的时候

那么循环跳出

也就是i是等于m的

也就是m被整除的这个数

肯定不在2到m-1这个范围

如果i小于m

也就是说这个循环它是在

i小于m的状态下跳出的

也就是m被一个2到m-1

这个范围内某一个数整除的

所以这个是判断素数的这样一个思路

接下来我们来看这个程序的运行结果

我们试着输入18

得到18它不是素数

因为输入18之后

进for循环

那么很显然18被2是可以整除的

那么18÷2取的余数和零相等

所以这个时候符合if条件

跳出break

那外面的这个i值呢

i值为2肯定是小于m的

2小于18的

所以它不是素数

好这是我们学习的这个break语句

来控制这个循环提前终止的这个例子

下面我们再来看另外一个continue语句

那么continue语句它的作用

是提前结束本次循环

也就是说遇到continue

就要跳过本次循环中剩余的语句

而强行执行下一次循环

大家可以看到这个流程图

流程图里面表达式1是循环条件

中间这个矩形块是执行的循环语句

然后再往下这个表达式2是一个if条件

continue语句是和if条件配合使用的

当表达式2为真执行continue语句

当表达式2为假就跳出continue往下执行

continue语句在循环体里面

经常与if条件一起使用

用来加速循环

下面我们来看一个例子

要读入五个正整数

并且输入这五个正整数的和

要求输入的数据为负数或零的时候

程序忽略此次输入

直到输入五个正整数的时候

程序才停止

所以这个循环的次数我们事先是知道的

一定要输入五个正整数

那么它遇到输入的负数或者零

既然要忽略此次输入

也就是说我要提前结束本次循环

也就是说这个时候我这次循环

后面的语句就不用执行了

马上进下一次循环

马上进下一次循环等着输入下一个正整数

那么输入的正整数达到五个

我们才能跳出循环

所以在提前结束本次循环进入下一次循环的时候

就需要这个continue

我们来看一下这个程序

我们定义了i n sum三个变量

i它是控制这个循环次数的

n是每次要输入的这一个数

sum是求的和

进了循环语句

进for语句之后

我们先输入n的值

然后再判断这个n是否小于等于0

如果n小于等于0

马上continue

也就循环体后面的语句不用执行了

结束本次循环

也就是说后面的循环语句

i也不用++了

sum也不用求和了

下一次进循环

我又要输入n的值

我这个时候输入的n是大于零的正数

那么它就不用continue

它跳过continue它就会怎么样

它就会做后面的i++

计算循环的次数

它就会求和

如果输入的n小于等于0的数

它就什么都不做

直接进下一次循环

所以这个就是continue的这个作用

当然这个for循环里

如果输入大于零的数满了5个

满了五个之后

也就是i的值等于5了之后

这个for循环就结束了

最后输出sum变量的值

也就是我们要求的五个正整数的和

好这是我们通过这个例子

来学习continue的这个语句

这是我们今天学习的

break和continue这两个语句的知识

那么这一节课就到这里

谢谢大家

高级语言程序设计课程列表:

程序设计和C语言

-1.1 计算机程序和计算机语言

--计算机程序和计算机语言

--致敬先辈:伟大的C语言之父——丹尼斯·里奇 程序员

-1.2 C程序的构成

--C程序的构成

--当前主流程序设计语言各自都有什么优势?

-1.3 C语言编辑、编译、运行(VC++2010学习版)

--C语言编辑、编译、运行(VC++2010学习版)

-练习题

顺序结构程序设计

-2.1 变量的定义和使用

--变量的定义和使用

-2.2 数据类型

--数据类型简介

--整型数据

--实型数据

-2.3 格式输出和格式输入

--格式输出printf函数

--格式输入scanf函数

--单个字符的输入输出

-2.4 运算符和表达式

--运算符和表达式

-2.5 结构化程序设计入门

--结构化程序设计入门

-练习题

选择结构程序设计

-3.1 为什么要用选择结构解决问题

--为什么要用选择结构解决问题

-3.2 如何正确表示选择结构中的条件

--如何正确表示选择结构中的条件

-3.3 用if语句及if语句嵌套实现选择结构

--用if语句及if语句嵌套实现选择结构

-3.4 用switch语句实现选择结构

--用switch语句实现选择结构

-练习

循环结构程序设计

-4.1 循环的引入

-- 为什么要用循环结构解决问题

-4.1 循环的引入--作业

-4.2 用while语句实现循环

--用while语句实现循环

-4.3 用do-while语句实现循环

-- 用do-while语句实现循环

-4.4 用for语句实现循环

-- 用for语句实现循环

-4.4 用for语句实现循环--作业

-4.5 何时需要用循环的嵌套

--何时需要用循环的嵌套

-4.6 如何提前终止循环和提前结束本次循环

--如何提前终止循环和提前结束本次循环

-习题--作业

数组

-5.1 数组类型的引入

--数组类型的引入

-5.2 一维数组的定义和初始化

--一维数组的定义和初始化

-5.3 一维数组的使用

--一维数组的使用

-5.4 二维数组的定义和初始化

--二维数组的定义和初始化

-5.5 二维数组的使用

--二维数组的使用

-习题--作业

指针

-6.1 什么是指针

--什么是指针

-6.2 指针类型及相关概念

--指针类型及相关概念

-6.3 指针变量的定义、赋值与使用

--指针变量的定义、赋值与使用

-6.4 指针的运算

--指针的运算

-6.5 指针与一维数组

--指针与一维数组

-6.6 指针的指针

--指针的指针

-6.7 指针与二维数组

--指针与二维数组

-习题--作业

函数

-7.1 为什么要自定义函数

--为什么要自定义函数

-7.2 函数的定义

--函数的定义

-7.3 函数的调用

--函数的调用

-7.4 函数参数的传递

--函数参数的传递

-7.5 函数的嵌套调用和递归调用

--函数的嵌套调用和递归调用

-7.6 变量的作用域和存储类型

--变量的作用域和存储类型

-习题--作业

字符串

-8.1 字符串的存储及输入输出

--字符串的存储及输入输出

-8.2 系统字符串处理函数

--系统字符串处理函数

-8.3 自定义字符串处理函数

--自定义字符串处理函数

-习题--作业

结构体和共用体

-9.1 结构体类型的定义

--结构体类型的定义

-9.2 结构体变量及指针变量的定义及使用

--结构体类型变量和指针变量的定义和使用

-9.3 结构体变量和指针变量作函数的参数

--用结构体变量和指向结构体的指针作函数参数

-9.4 结构体数组的定义和使用

--结构体数组的定义和使用

-9.5 共用体类型和枚举类型

--共用体和枚举类型

-习题--作业

动态内存分配

-动态内存分配--习题

文件

-习题--作业

如何提前终止循环和提前结束本次循环笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。