大家好,这里先欢迎一下大家加入了通信科协这个优秀而又强大的组织。通信科协里大佬云集,但是所有的大佬刚来到科协最先接触的东西都很基础,C语言是大家来到科协学会的第一项技能。加油学会C语言,是成为大佬的第一步。

循环初探

  循环是什么,这里可以举几个例子。

  早上醒来你看到了时钟上的秒针渐渐挪过,秒针转完一圈后分针就会移动6°,随后秒针又回到了0点开始下次一旋转,这是一个循环。当分针走完一圈以后,时针就会移动30°。这又是一个循环(不要吐槽为什么会看一个小时的时钟,本宝宝就是想赖床不想起来),两个循环叠加,构成了时钟的运作。时间如江水逝去不复返,循环的作用也不仅仅在表达时间的运作,在咱们程序设计之中,更重要的是表达一个有序的间隔,。

While;do while循环

下面的文章里咱们将顺延上面举的两个例子,来让大家更好地理解循环。

学习循环之前咱们先从if语句讲起。

       这里咱们利用if语句编写一个每秒刷新一次的秒表程序。

每重复上述代码一次就会+1s

可以发现,咱们已经将时间的规则表达清楚了,可是咱们需要重复if无数次,才可以实现钟表的走动。

       带着这个问题咱们来了解一下while语句和do while语句。

       原谅咱先放个百度上找来的流程图理解一下。

while

While(表达式)              ←注意这里没有分号

{

循环体;

}

       当括号里运算结果是非0的话进入循环,为0则跳出。这里的运算结果可以是算数关系逻辑中的任意一种,建议不要用字符型变量作为运算结果。

do while

do{

循环体;

}while(表达式);                    ←注意这里有分号

当括号里运算结果是非0的话进入循环,为0则跳出。这里的运算结果可以是算数关系逻辑中的任意一种,建议不要用字符型变量作为运算结果。

看完这两种表达语句咱可以发现的其中的共同点和不同点。

共同点在于他们都需要满足while后括号里的条件才可以进行执行或者跳出。

不同点是do while 要先执行一次以后再进行判断,而while是先判断后执行。

这种反复执行循环体的应用就是循环的应用。

下面,咱就可以用循环的知识来运行咱们的秒表了

先用while来一遍

程序执行的结果是陈列了从0秒到59秒的过程。

用一个循环可以解决秒,那么在外面嵌套一个循环就可以解决分了。

现在我们就可以把一小时内每一秒都陈列在屏幕中了

其实是59分59秒,但是剩下的一秒去哪了呢?

再用do while 来一遍

同样道理,do while的代码我也直接贴上来了,其中的细节部分有些不同大家要注意。

写在最后:

要注意的一点是,作为循环,必须要有跳出循环的方法,即通过改变表达式中的变量,总应有一个变量使得表达式结果不满足,并跳出循环。无法跳出循环的循环叫做死循环,有时死循环无法避免的,但是我们可以用break和continue语句辅助其终止。

For循环

学会了上面的两种循环,我们再来认识一下for循环。

我们先简单的了解一下for循环的结构,然后我们就会知道为什么要把它拿出来单独讲了。

for ( [表达式 1]; [表达式 2 ]; [表达式3] )

{

语句(循环体)

}

表达式1:一般为赋值表达式,给控制变量赋初值;

表达式2:关系表达式或逻辑表达式,循环控制条件;

表达式3:一般为赋值表达式,给控制变量增量或减量;

语句:循环体,当有多条语句时,必须使用复合语句。

可以发现,for语句的括号里有三个表达式。

其中第二个表达式while do while相同,用于控制循环结束的条件。第三个表达式就是将while里对控制变量进行操作的表达式。程序将默认把它放在最后一行执行。

下面我们用for来解决一下

代码是不是变得简单多了呢

For的好处其实不止这个,当我们需要用到控制变量时,可以临时定义一个变量名无意义的变量,少了一行定义使程序看起来更简单。

了解了循环的基础知识以后,我们可以用循环完成一些更复杂的问题

// 冒泡排序算法

    题目要求:输入10个整数,输出从小到大排序的结果。

    输入示例:9 3 2 5 4 1 0 8 6 7

输出示例:0 1 2 3 4 5 6 7 8 9

这道题用到了冒泡排序算法

冒泡,顾名思义,就是像汽水里的气泡一样从杯底浮上来

If内的过程即是将两个变量进行比较并交换,

此题的亮点在于第二个for里的上i<10-j.以及层层比较,将最大的数字挑出后继续下一轮比较的思想,是典型的冒泡算法。

附上完整代码

小结

循环作为接触到C语言后的第一个难点,代表着一种重复的运算思维。常常与遍历的思维结合在一起,融入在各种算法之中。算法是未来编程中很重要的一个环节,在接触了循环以后大家将会有能力解决很多问题,玩出许多的骚操作。在这种过程中尽量简化工作、避免出错,就会就需要各位开动脑筋,想出最优解法。

学习到这里大家的C语言可以说是已得其门,未入厅堂。之后的路还需要各位再接再厉。这是一篇早早地放下编程的咸鱼学长写的教程。

靴靴大家赏眼看到这里φ(>ω<*)

发表评论