上一篇,我们介绍了 顺序结构 和 选择结构 ,这篇我们来介绍 循环结构 。(没有看过上篇的朋友可以去我主页找一下上篇。)
三.循环结构
C语言中,循环结构主要运用的有两种,while循环 和 for循环 。循环结构就像它的名字一样,使程序不停的循环运行。
1.while循环
1.1.while循环的基本结构
while循环 的形式和if语句是很相似的,具体形似如下:
while( 判断 )
{
语句
}
判断小括号中的语句是否为真,如果为真执行大括号中的语句,反之不执行。是不是和if语句很相似?
1.2.while循环的实践
我们来进行一个简单的 while循环 的使用。
输出:1~10之间的数
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i = i + 1;
}
return 0;
}
1.3.do~while循环的基本结构
do~while循环 的运用和 while循环 稍有不同,它的基本形式如下:
do{
语句
}while( 判断 );
从它的基本形式,我们就不难看出,do~while循环 先进行一次循环语句的运行,再判断()中的语句是否为真,若为真,继续循环,反之退出循环。
1.4.do~while循环的实践
输出1~10之间的数:
#include <stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ", i);
i = i + 1;
} while (i <= 10);
return 0;
}
do~while循环 主要用于循环至少执行一次的情况下,它使用的次数相对来说是比较少的。
2.for循环
for循环 由于自身形式表达更为清晰,在编程中使用最多。
2.1.for循环的基本形式
for(语句1; 语句2; 语句3)
{
循环语句
}
- 语句1:初始化循环变量。
- 语句2:用于循环结束条件的判断。
- 语句3:用于循环变量的调整。
2.2.for循环的用法
下面我们通过一个简单的 for循环 的应用来了解for循环的用法。
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
printf("%d ", i);
}
return 0;
}
首先,利用语句1初始化变量 i = 1,然后判断 i 是否 <=10,若为真,执行循环语句,随后对 i 进行+1操作,再次判断 i 是否 <=10,若为真,继续执行循环语句,随后对 i 进行+1操作,这样反复运行,直到 i <= 10 的条件不成立,结束循环。整个循环的过程中,语句1初始化部分只被执⾏1次,剩下的就是语句2、循环语句、语句3在循环。
当然,语句1、2、3都是可以空出来的,但是 for循环 的基本形式必须保留。
比如,这串代码你还可以这么写:
#include <stdio.h>
int main()
{
int i = 1;
for ( ; ; )
{
if (i == 11)
break;
printf("%d ", i);
i++;
}
return 0;
}
2.3.for循环的实践与理解
同样的,我们利用 for循环 输出1~10之间的整数:
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d ", i);
}
return 0;
}
3.while循环,do~while循环,for循环的对比
#include <stdio.h>
int main()
{
int i = 1; //变量的初始化
do
{
printf("%d ", i);
i = i + 1; //变量值的改变
} while (i <= 10); //判断return 0;
}
#include <stdio.h>
int main()
{
int i = 1; //变量的初始化
while (i <= 10) //判断
{
printf("%d ", i);
i = i + 1; //变量值的改变
}
return 0;
}
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++) //(初始化; 判断; 改变值的大小)
{
printf("%d ", i);
}return 0;
}
由此观之,无论是for循环,while循环,do~while循环都有,变量初始化,判断,变量值的更改三部分。而 for循环 中这三个值的位置都很固定,更利于对代码的理解和维护,故 for循环 很受大家的欢迎。
单单从代码的执行方式来看,for 循环 和 while 循环 有类似之处,都先进行判断,如果为真,再执行代码。⽽ do~while循环 则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表 达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。
简而言之,while循环,先判断,后循环;do~while循环,先循环,后判断。
4.循环中continue和break的作用
4.1.continue的作用
我们知道,continue 的译为:继续。那么在循环中它就是这个作用。
同样,我们举例来说明:
#include <stdio.h>
int main()
{
int i = 1;
for (i = 1; i <= 10; i++)
{
if (i == 5)
continue;
printf("%d ", i);
}
return 0;
}
运行一下:

我们发现,在循环中,当 i 的值为 5 时,程序执行了 continue 语句,使循环跳过了 5 这个值,不输出它,继续后面的循环。就好比击鼓传花,传到第五个人时,第四个人直接把花球给第六个人,跳过第五个人,第六个人继续将花球传下去。所以,未来当某个条件发⽣的时候,本次循环⽆需再执⾏后续某些操作的时候,就可以使⽤ continue 来实现。
4.2.break的作用
循环中的 break 与 switch 中的 break 作用是一样的。
同样,我们举例来说明:
#include <stdio.h>
int main()
{
int i = 1;
for (i = 1; i <= 10; i++)
{
if (i == 5)
break;
printf("%d ", i);
}
return 0;
}
运行,输出的结果为:

可以看到,当 i == 5 时,程序运行了 break 语句,使循环直接结束。就像击鼓传花,花球传到第四个人时,直接停止了。所以 break 的作⽤是永久的终⽌循环,未来我们在某个条件发⽣时,不想再继续循环的时候,就可以 使⽤ break 来完成。
四.结语
这两篇博客就是我对C语言中结构的简单认知,如果有什么不合适的地方,欢迎留言更正。让我们一起向资深程序员进发吧。
1732

被折叠的 条评论
为什么被折叠?



