概述
循环结构
一,知识点
1 for循环:
for (循环控制变量初始化; 循环终止条件; 循环控制变量增量)
{
循环体
}
循环执行步骤:第一,先进行循环控制变量初始化;
第二,执行循环终止条件,如果判断结果为真,则进入第三步;如果为假则循环终止并退出;
第三,执行循环体;
第四,执行循环控制变量增量,转入第二步;
注:for循环()中的三部分除了循环终止条件外,其他两部分都可以省略,但标准的for循环中,应该把循环控制变量的初始化,增量都放在()当中,并且在循环体中绝对不应该更改循环控制变量;
2.while:
循环控制变量初始化
while(循环终止条件)
{
循环体
循环控制变量增量
}
循环执行步骤:第一,先进行循环控制变量初始化(在while之前);
第二,判断循环终止条件,如果判断结果为真,则进入第三步;如果为假则不执行循环体;
第三,执行循环体;
第四,执行循环控制变量增量,转入第二步;
3 do while:
循环控制变量初始化
do
{
循环体
循环控制变量增量
}while (循环终止条件);
循环执行步骤:第一,先进行循环控制变量初始化(在do while之前);
第二,执行循环体;
第三,执行循环控制变量增量;
第四,判断循环终止条件,如果判断结果为真,则返回第二步;如果为假则直接退出循环;
4 总结:不管哪种循环结构,都不能缺少循环控制条件初始化,终止条件,循环控制变量增量,循环体这四部分;while循环是先判断后执行,do while循环是先执行后判断,等循环一次之后,其实都是一样的;
二,如何使用
1,for循环
例:杨老师6班测试
【题目描述】
输入n,输出一个n*n的正方形,正方形由符号c1和c2组成,正方形的四条边和对角线由c1组成,其余部分由c2组成。
#include<stdio.h>
int main()
{
int n,m,i,j,k;
char b,c;
scanf("%d %c %c",&n,&b,&c);
m=n+1;
for(i=1; i<=n; i++)
{
if(i==1||i==n)
{
for(j=1; j<=n; j++)
{
printf("%c",b);
}
printf("n");
}
else if(i!=1&&i!=n)
{
for(k=1; k<=n; k++)
{
if(k==1||k==n||k==i||i+k==m)
{
printf("%c",b);
}
else
printf("%c",c);
}
printf("n");
}
}
return 0;
}
利用for循环来控制行和列的输出;进而达到题目要求;
2,while循环
例,最短距离的点。
描述
给出一些整数对,它们表示一些平面上的坐标点,给定一个点,求所有那些点到该点最短距离的点。结构为:第一个整数对为所给定的点,后面的整数对为所有其他的点。
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c,d,x,y,n=0,e,max=99999999;
scanf("%d %d",&a,&b);
while(~scanf("%d %d",&c,&d))
{
e=sqrt((a-c)*(a-c)+(b-d)*(b-d));
if(max>e)
{
max=e;
x=c;
y=d;
}
}
printf("%d %d",x,y);
return 0;
}
这道题没给出输入几组数据,就可以用while循环来解决,对于此类问题不知道循环结束的条件,就可以用while循环语句,在通过break结束,或者continue来继续执行;
3,do while 循环
例
#include <stdio.h>
main()
{
int i,sum=0;
scanf("%d",&i);
do
{
sum+=i;
i++;
}while(i<=10);
printf("%d",sum);
}
输入:11
运行结果:11
虽然不满足循环条件,还是可以执行一次。
三,感悟
1,尽量使循环控制变量的取值采用半开半闭区间写法从功能上看,虽然半开半闭区间写法和闭区间写法的功能是完全相同的,但相比之下,半开半闭区间写法更能够直观地表达意思,具有更高的可读性。
2,尽量使循环体内工作量达到最小化,for 循环随着循环次数的增加,会加大对系统资源的消耗。如果你写的一个循环体内的代码相当耗费资源,或者代码行数众多(一般来说循环体内的代码不要超过 20 行),甚至超过一显示屏,那么这样的程序不仅可读性不高,而且还会让你的程序的运行效率大大降低。
3,避免在循环体内修改循环变量,在 for 循环语句中,我们应该严格避免在循环体内修改循环变量,否则很有可能导致循环失去控制,从而使程序执行违背我们的原意
4,尽量使逻辑判断语句置于循环语句外层,一般情况下,我们应该尽量避免在程序的循环体内包含逻辑判断语句。当循环体内不得已而存在逻辑判断语句,并且循环次数很大时,我们应该尽量想办法将逻辑判断语句移到循环语句的外层,从而使程序减少执行逻辑判断语句的次数,提高程序的执行效率。
5,尽量将循环嵌套控制在 3 层以内,如果超过三个循环,这样程序的执行效率也会很低。因此,如果代码循环嵌套超过 3 层,建议重新设计循环。
最后
以上就是欢呼鼠标为你收集整理的C语言循环结构的全部内容,希望文章能够帮你解决C语言循环结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复