我们在学习循环以前我们先思考一下,我们生活的哪些部分用到了循环,或者是又是说,循环出现在了我们生活中的那些地方?
例如:
地球围绕太阳公转5圈 【次数:5圈】
打印机打印N张word文档 【次数:N张】
发动机的转动 【次数:未知数】
而我们在C语言中也也是如此,循环也是有限次数循环和无限次数的循环。那么,我么们应该如何控制循环的结束?那么我来告诉你们:控制循环结束的方式有两种:一种针对次数不明确的条件控制循环,一种针对次数明确的计数控制循环。那么我来据一些例子来帮助大家来理解这些比较晦涩难懂的概念。
首先是我们的条件控制循环,要先了解条件控制循环的特点,那么它的特点就是:由一个给定条件,控制循环结束的循环结构。举个生活中的个例子就是,如果我们10把钥匙,但是只有一把钥匙能打开,那么我们便要一把一把地去尝试打开这扇门。
其次我们来了解一下技术控制循环以及它的特点。计数控制循环的特点:有举个明确的次数,控制循环结束的循环结构。举个生活中的个例子便是我们密码的输入,比如说我们在进行手机解锁时是有限次你输入错误密码的次数,比如说超过3次就锁定手机30秒之类的等等。
在了解两种循环以后我们要知道如何使用它,话不多说,我们先了解一下它的句法结构,首先我们要先了解它最基本的累加运算。在此以前我们要先思考三个问题:
- 循环如何执行?
- 如何实现累加运算?
- 如何保证循环可终止?
我将举几个例子帮助大家学习理解(如图所示):
可见这个是一个非常简单的for循环示例。x 设置为零,而 x 小于 6 时,它调用 printf 来显示变量 x 的值,并且 将 1 加到 x,直到满足条件。此外我们要知道变量是在循环中的代码首次运行后递增。
在了解简单的循环以后我们来了解一下如何实现累加的运算(如下图所示):
我们用数学归纳法,对问题进行数学建模 ,将问题求解方法抽象为公式假设前i--1个数的和,已经计算完毕是sumi-1,则只需进行一次加法运算sumi=sumi-1+ni (将其表示为递推过程是:sumi=sum(i-1)+ni,求和,所以初始值sum0=0)上图中我们要了解其中的六个小的组成for循环的因素:
-
- 计数控制(增量变化) 计算器计数:i=i+1
- 循环体 sum=sum+n
- 循环初值 sum=0,i=1
- 循环控制条件(结束条件) i<=5 (i<6)
那么理解并掌握以上几点你也就掌握了for的基本用法。
其次循环还有while和do while的循环
While
我们先输入以下代码:
编译并运行它。输出应如下所示:
那么我们就可以理解到其作用:当执行 while 语句时,i 小于或等于 10,则执行 while 后面的语句。然后将 i 递增 1。然后我们回到 while 再次测试。同样,2(在i递增到该值时)小于或等于 10,将会再次执行。而这就是一个 while 循环。最终当,i 将递增到值 11 时,程序将会检查失败然后停止循环然后进入到下一个语句。
接着我们开始认识do while的语句,首先我们要了解do while句法是这样的:
值得请注意的是,该条件是在末尾进行检查的,而不是在开始的地方,所以该循环将至少执行一次。如果条件是“真”,我们跳回块的开头并再次执行它。一个do while 循环与 while 循环几乎相同,只是do while循环主体是保证至少执行一次。while 循环是在条件为“真”的时候才执行此代码。而do while循环实在执行此代码以后,然后再判断条件为 “真”。接着我们来一个简单的do while来帮助大家理解:
那么到这里我们便结束今天的循环学习,其余的小知识点我还是放在后面的思维导图里了,各位可自行观阅,谢谢!