循环结构知识点
一、循环语句
1、while语句
形式为:
while(循环控制表达式)
{
语句序列 //循环体
}
其属于当型循环,为当条件成立时执行循环语句,常用于不知具体循环次数时使用
2、do-while语句
形式为:
do
{
语句序列 //循环体
}while(循环控制表达式)
其属于直到型循环,执行语句直到条件成立,一般不用
3、for语句
for语句为较常用语句,属于当型循环,多适用于已知循环次数的情况,其形式为:
for(初始化表达式;循环控制表达式;增值表达式)
{
语句序列 //循环体
}
特别注意:初始化表达式、循环控制表达式、增值表达式之间用==;==隔开
二、嵌套循环
1、运用情况
如:描述一个矩阵
#include<iostream>
using namespace std;
int main()
{
int h,w,c;
int i,j;
char s;
cin>>h>>w>>s>>c;
for(i=1;i<=h;i++)
{
for(j=1;j<=w;j++) //用于控制行
{
if(c==1||i==1||j==1||i==h||j==w) //用于控制列
cout<<s;
else
cout<<" ";
}
cout<<endl;
}
return 0;
}
此程序中,用两个for语句嵌套循环分别控制矩形的行数列数
又如:粘墙三角
#include <iostream>
#include<iomanip>
using namespace std;
int main()
{ int n,i,j;
char c;
while(cin>>n)
{
for(i=1;i<=n;i++)
{
if(i!=n)
cout<<"a"<<setw(n-i)<<" ";
else cout<<"a";
for(j=1;j<=i;j++)
{c =j+96; cout<<c;}
cout<<endl;
}
cout<<endl;
}
return 0;
}
其中,用while循环语句控制条件,嵌套for语句循环
==while(cin>>m)==可用于一次程序多次输入执行的情况
2、嵌套循环可以是三种循环嵌套,嵌套次数尽量少
当嵌套时,注意循环的次数
计算方式为,n次嵌套中的循环次数相乘
三、流程控制语句
1、goto语句
2、break语句
用于结束当前语句跳回循环,这个语句较常用
但需注意,使用时应明确break所属的语句
3、continue语句
continue语句用于循环内部的跳转,跳过后续语句跳回循环
语句并不会结束循环,而break语句会结束当前循环
例如:
#include<iostream>
using namespace std;
int main()
{
int n,m,i;
cin>>n>>m;
for(i=n;i<=n*m;++i)
{
if(i%n==0&&i%m==0)
{cout<<i;break;}
}
return 0;
}
该程序中break语句属于if条件语句中,所以,应用{ }以明确语句归属
该break语句用于在if条件满足时结束该循环
若更改为continue语句,则只是跳过后续语句,结束当次循环
四、总结
循环控制结构为三大基本结构之一,常用,常与条件循环嵌套使用
使用时应特别注意循环的逻辑、每一步、特别是每一条语句的作用、含义
循环结构使用时也应注意循环的次数,避免多重循环嵌套,以免程序运行时间过长,同时也应注意循环的有穷性,避免死循环的出现
另外,循环结构使用情况较为复杂,应避免直接写程序
注意
读完题目一定要先做出分析以明确程序功能,而后选择程序实现的方法
运用循环控制语句、条件控制语句是一定注意其逻辑关系
程序的调试十分重要,常用的断点找bug的方法应常使用,以达到熟练运用其寻找程序bug的目的
程序出现问题是应先理清其逻辑关系,而后通过设计测试数据或程序断点输出的方式来寻找问题,当遇到新知识或新bug时应先查阅资料以明确程序问题及解决方法
2018.12.07 Ki