:初识C循环
Posted Zheng"Rui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了:初识C循环相关的知识,希望对你有一定的参考价值。
第一章 C语言的循环结构
文章目录
前言
什么是循环?在任何语言中,循环结构都是非常重要的一部分,因为循环能帮助我们完成大量重复的工作。机器语言中只有0和1,机器的思维模式也非常简单,很多在我们看来很简单的问题,在机器眼中却异常复杂,这都是因为,机器有足够快速的运算去执行每一个重复工作,去计算问题。就比如,在【1,5,4,15,26,75,11,45,35,46】中找出最大的数字,我们人类可能一眼就看出来了,但是机器却要一个一个数字的比较去找出来。
这种思维方式看似笨拙,但实际上,这是机器独有的优势,因为机器有着超高的计算能力,所以它能够承受这种‘复杂的’运算。
当然,说了这么多,只是想指出,机器的这种特点可以成为我们编程的有利工具,在编程时,需要熟练使用循环结构,不仅可以简化编程,还可以提供一个简洁的设计思路。
C语言中有三种循环结构,分别是for循环,while循环和do~while循环
下面分别介绍这三种循环。
一、for循环
1.for循环的语法结构
for(表达式1;表达式2;表达式3)
循环语句;
这里的表达式1,用来做数据的初始化,表达式2是循环的控制结束条件,表达式3是每一次循环都要做的代码,用于步进循环条件。
2.for循环实例
下面看一个简单的for循环实例
for(int i = 0;i < 10;i++)
printf("%d ",i);
这就是一个简单的打印0到9的for循环语句,可以看到,只有两条语句,就能实现打印的任务,其中,int i = 0;是初始化数据,i<10 是循环继续的条件,每执行一次循环体都要执行一次i++;
二、while循环
1.while循环的语法
while(循环条件)
循环体;
在while循环中,while后面首先接小括号,小括号中提供循环继续的判断条件,之后的花括弧中写入循环语句。
2.while循环实例
以上个实例为例,在while循环中,实现同样的功能:
int i = 0;
while(i < 10)
printf("%d ",i);
i++;
在这个实例中,我们可以看到,while和for循环的区别,在while循环中,因为语法结构的不同,数据的初始化,条件判断,步进执行被写在了程序的不同位置,而在for循环中,这三个语句较为集中,这也就导致了,在实际编写程序时,我们会更多的编写for循环的代码。
三、do~while循环
do~while的语法结构
do
循环体;
while(判断条件);
在do~while循环中,从语法中可以看到,不管循环条件是否满足,都会执行一次循环体,然后再进行循环条件的判断。这种语法确实能够在特定的时候满足编程的需求,但是,同时如果编写不严谨,就可能出现问题,比如下面这串代码
int i = 0;
do
printf("%d ",i);
i++;
while(i > 0);
在这个程序中,我们不希望打印数字,但是,使用do~while循环使得这个程序进入了死循环,出现错误。
四、break 和 continue的使用
在循环中,我们经常需要使用一些技巧来提前结束循环或跳过当前循环。这就需要使用到这两个关键字。其中,break的作用是跳过整个循环,而continue的作用是跳过当前循环。
举个简单的例子:教室里,老师让同学们轮流唱歌(这就类比于一个循环),从第一个同学开始,到第二个,第三个,第四个同学时,如果使用break语句终止整个循环,就相当于,老师在第四个同学唱完之后,说不唱歌了,进行下一个游戏。而如果使用continue语句,就相当于,第四个同学唱的太难听了,刚唱到一半,老师就让他坐下,让下一个同学继续唱。
下面以具体代码为例讲解:
for(int i = 0;i < 10; i++)
if(i == 5)
break;//此时,只打印了0到4,然后退出了循环,之后的数字不在打印
printf("%d ",i);
for(int i = 0;i < 10; i++)
if(i == 5)
continue;//此时,跳过打印数字5,之后会继续打印数字6,7,8....
printf("%d ",i);
总结
在本章中,我们学习了三种循环结构,和两个关于循环的关键字,break和continue。我们需要注意区别这三种循环结构的使用方法,在使用中,我们一般不适用do~while循环,但是,并不是说,do-while循环不能实现另外两个循环能够实现的内容,在编程上,这三种循环都是可以互相转换的。
还有,break和continue只能使用在循环语句中,(除了switch语句),要注意在不能再其他场合使用。
以上是关于:初识C循环的主要内容,如果未能解决你的问题,请参考以下文章