各位程序猿们,大家好,今天小梓又给大家带来C语言循环结构的总结,循环语句分为三种,分别是for,while,do while,语句,接下来我将为大家详细讲解。
一,什么叫循环?
顾名思义,循环指的是在一个闭合的结构内根据给出的循环条件进行累积执行的一个过程,在这个过程中,循环会根据所给出的条件判断是否执行循环,如若不满足,则跳出循环,如图所示:
二,while循环
(1)while结构的基本形式
在日常生活中,当我们想要多次循环去做一件事的时候,那就需要一个固定的路程去执行这个任务,反应到代码上,就需要使用 while语句
//while 语法结构
while(表达式)
循环语句;
while语句的结构如下:
while语句中的表达式通常指的是需要实现的判断条件就是上图中的条件代码,在while结构中需要以此为前提才可以执行自身,下面为了让大家更好的理解,我将为大家举一个打印1到100之内数的累加的例子,如下
#include <stdio.h>
int main()
{
int a = 1;
int sum = 0;
while (a <= 100)
{
a++;
sum += a;
printf("%d\n", sum);
}
return 0;
}
语句中a <=100,就是一个前提条件,在此基础下才可执行while的内部语句,在while结构中,如果成功执行将会一直循环往复,直到不满足条件代码自行跳出循环为止。
(2)while结构中的break和continue
在讲解之前先给大家来一段代码演示,让大家看看这两个指令有何特效:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 20;
int b;
while (a <= 20)
{
a--;
for (b = 0; b <= 40;b++ )
{
if (b <= a)
{
printf("小梓真帅\n");
continue;
}
else(b > a);
{
printf("小梓真酷\n");
break;
}
}
break;
}
return 0;
}
从执行答案可以看出在“小梓真帅”下面加入continue的效果是连续打印小梓真帅20次,直到第二十辞才变成“小梓真酷”,为什么会这样子呢?
原因是 continue是一个重复执行一个过程的指令,只执行while条件代码到它为止的部分,也就相当于当b <=a 这个条件一直成立的时候,那么就只会一直执行b = 0与数值a的比较这个语句,直到a的数值通过a--变成比b小的数,才可以执行下一个语句 b > a,直到a =0 为止,这就是20个“小梓真帅”,和一个“小梓真酷”的由来。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 20;
int b;
while (a <= 20)
{
a--;
for (b = 0; b <= 40;b++ )
{
if (b <= a)
{
printf("小梓真帅\n");
break;
}
else(b > a);
{
printf("小梓真酷\n");
break;
}
}
break;
}
return 0;
}
至于这个结果,显然是在break替换掉continue后才出现的情况,这说明,break具有一次终断的功能,在完成一次语句的输出后,break会自动终断执行并跳出循环。
二、for 循环
在实际写代码的时候,for循环使用次数要比while循环多
原因是:在while循环中依然存在循环的三个必须条件,但是由于风格的问题使得三个部分很可能偏离较远,这样查找修改就不够集中和方便。所以,for循环的风格更胜一筹;for循环使用的频率也最高。
(1)for循环的结构:
for(表达式1; 表达式2; 表达式3)
循环语句;
表达式1
表达式1为初始化部分,用于初始化循环变量的。
表达式2
表达式2为条件判断部分,用于判断循环时候终止。
表达式3
表达式3为调整部分,用于循环条件的调整。
下面我们同样也用一小段代码来为大家更好的讲解,
int main()
{
int a ;
int b = 0;
for (a = 1; a <= 100; a++)
{
if (a % 10 == 9)
{
b++;
}
if (a / 10 == 9)
{
b++;
}
}
printf("输出9的个数=%d\n", b);
return 0;
}
执行结果为:20个
(2)for的执行流程图
(3)关于for语句的循环
这里我们有两点需要注意的点:
第一点:for语句的循环控制变量是可以不写的,不写的话就是个死循环,新手建议不要将循环控制变量在for循环的里面修改,防止for循环出现死循环
第二点:建议for语句的循环控制变量的取值是”前闭后开的“。举个例子。
int i = 0;
//前闭后开的写法
for(i=0; i<10; i++)
{}
//两边都是闭区间
for(i=0; i<=9; i++)
{}
这里二者有什么区别呢。前面的代码是前闭后开的即i<10。后面的代码是前闭后闭的。区别在于:我们可以通过前面的代码马上知道循环次数为10(即"<"后面的那个数字),这样子写容易增加辨识度。
4、do-while循环
(1)do-while循环的结构
do
循环语句;
while(表达式);
(2)do-while的执行流程图
由于for循环与do-while相似,所以不再重复解释,其中,while()括号里的表达式功能与while相似。