在实际应用中,会经常遇到许多有规律性的重复运算,这就需要用到循环结构,有三种for,while和do while
一、for
1、for格式: for(控制变量初始化表达式;条件表达式;增量表达式)
2、for语句执行过程
①先给控制变量一个初值
②判断控制变量是否满足"条件表达式",若满足条件,则执行一遍循环体,否则结束整个for语句,继续执行for循环下面的句子
③根据新增表达式,计算出控制变量所得到的新值
④自动跳转到第2步
3、语句格式举例
(i)控制变量从1变到100,增量为1
for(i=1;i<=100;++i)
(ii)控制变量从20变到2,增量为-2
for(int i=20;i>=2;i-=2)
(iii)控制变量i和j共同进行循环控制,i从1变到99,j从2变到100,增量均为2
for(int i=1,j=2;i<=99&&j<=100;i+=2;j+=2)
二、while语句
1、语句格式
while(条件表达式)
{
语句1;
语句2;
……
}
2、语句执行过程
(1)、计算作为循环控制条件表达式的值,得到逻辑真或假,假定用M表示。
(2)、若M为真,则执行了一遍循环体,否则离开循环,结束整个while语句的执行。
(3)、循环体的所有语句执行结束后,自动跳转第一步
3、格式举例
(i) i=0;
while(i<10)
++i;
当i<10时,重复执行i++语句。
(ii)while(cin>>x,x<0)
输入数小于0时,重复读数据
三、do-while语句
1、语句格式
do
{
语句一
语句二
…………
}
while(条件表达式);
2、语句执行过程
(1)执行一遍循环体。
(2)求出作为循环条件的“条件表达式”的值,若为逻辑值真,则自动转向第(1)步,否则结束do循环的执行过程.继续执行其后面的语句。
在do语句的循环体中也可以使用beak语句,用它来非正常结束循环的执行。
四、解决实际问题
1、如何选择for循环还是while循环
对于循环问题,利用for循环和while循环都可以解决,for循环和while循环写得语句也可以相互改写,但是对于不同的问题,for循环语句和while循环各有其优势。
【选择依据】对于循环次数已知的循环操作,用for语句实现比较方便;如果是根据某个状态来决定是否要循环下去,用while循环比较方便。
2、do…while循环和while循环最大的区别是:
do…while循环先执行循环体,再判断表达式;while循环是先判断循环体,再执行。
即:while里的循环体可能1次都不会被执行;
do…while循环里面的循环体至少会被执行1次。
3、出现死循环可能的原因
<1>循环变量变化方向不是是循环趋于结束(即和循环条件
背道而驰)如for(k=1;k<=10;k--) 。
<2> ; 号位置不正确如x=9; while(x>1) ; {x--; s=s+x;}
此时,系统认为while的循环体是一条空语句。
<3>循环条件书写不正确,(恒为真了)
如原意为while(x==5) {y++;s=s+y;。。。} 结果少写一个=号while(x=5) {y++;s=s+y;。。。}