前面我们提到了顺序和分支结构。在实际运用中,会经常有相似的重复多次运算。这些运算的次数可能多达千次。是绝对不可能一次一次的重复书写的。这就需要循环语句的程序设计。让计算机根据指令重复运算。利用它运算速度快的特点来解决大规模重复运算。
循环语句现介绍其中的三种。for语句、while语句和do-while语句。
for语句
格式 for(控制变量初始化表达式;条件表达式;增量表达式)
{语句1;
语句2;
…
}
or语句的执行过程可由以下4步来描述。
(1)执行“控制变量初始化语句”,使控制变量获得一个初值。
(2)判断控制变量是否满足“条件表达式”,若满足条件则执行一遍循环体,否则结束数个for语句,继续执行for循环下面的句子。
(3)根据增量表达式,计算出控制变量所得到的新值。
(4)自动转到第(2)步。
这是一个画矩形的程序,可以用字符来描绘一个矩形。
#include <iostream>
using namespace std;
int main()
{
int a,b,d,i,j;
char c;
cin>>a>>b>>c>>d;
if(d==0)
{
for(i=1;i<=a;i++)
{
for(j=1;j<=b;j++)
{
if(i==1||j==1||i==a||j==b)
cout<<c;
else cout<<" ";
}
cout<<endl;
}
}
else
{
for(i=1;i<=a;i++)
{
for(j=1;j<=b;j++)
{
cout<<c;
}
cout<<endl;
}
}
getchar();
return 0;
}
运用for语句的嵌套,可以完成多个重复过程连续地进行。
while 语句
格式: while(条件表达式)
{语句1;
语句2;
…;
}
循环体如果有多个语句,可以用花括号来将其完整的括起来,保证其以一个整体来进行。
while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环。
此外,break在switch语句中也有存在,他们的作用也有相似处。
此外"判断条件"还可以是个常值,表示循环必定成立,如果这个常数没有相应的语句使其改变,那么程序就会变成死循环。
利用while语句进行的循环举例:
计算50到100的所有数的和:
include
using namespace std;
int main(){
int sum=0,val=50;
while(val<=100){
sum+=val;
++val;
}
cout<<"sum of 50 to 100 is "<<sum<<endl;
return 0;
}
do-while
此处提出do-while语句,但在一般的程序中,很少使用该语句,因为其特点与while语句类似,却需要分为do和while两个部分来写,在初学中的程序可以用while代替。但也给出格式和图解
格式 do
{语句1;
语句2;
…;
}
while(条件表达式);
从格式上来看,do-while语句似乎更近似于语言习惯。即当……时,做……事。