在计算机解决实际问题时,往往需要重读执行特定的一系列步骤或操作,就要用到循环结构。需要执行的一系列操作的次数,有的是事先知道的,称为计数器控制的循环;有的是事先不知道的,由特定条件来控制,称为条件控制的循环。
用goto和 if 构成循环
while 语句
do ~ while 语句
for 语句
goto语句及用goto构成循环
goto语句一般格式:
goto 语句标号;
标号:语句;
无条件转移语句
说明:不能用整数作标号;只能出现在goto所在函数内,且唯一;只能加在可执行语句前面;限制使用goto语句;
例如:用if 和goto语句构成循环求1到100之和
/*ch5_1.c*/
#include
main()
{ int i,sum=0;
i=1;
loop: if(i<=100)
{ sum+=i;
i++;
goto loop;
}
printf("%d",sum);
}
一般形式
while(表达式)
循环体语句;
执行流程
While语句特点和说明
特点:先判断表达式,后执行循环体
说明:循环体有可能一次也不执行l循环体可为任意类型语句
下列情况,退出while循环
条件表达式不成立(为零)循环体内遇break,return,gotol无限循环:
while(1)
循环体;
例 显示1~10的平方
/*ch5_21.c*/
#include
main()
{ int i=1;
while(i<=10)
{ printf("%d*%d=%d\\n",i,i,i*i);
i++;
}
}
运行结果:
1*1=1
2*2=4
3*3=9
4*4=16
5*5=25
6*6=36
7*7=49
8*8=64
9*9=81
10*10=100
一般形式:
do
循环体语句;
while(表达式);
执行流程
do~while语句特点和说明
特点:先执行循环体,后判断表达式
说明:至少执行一次循环体;do~while可转化成while结构
一般形式
for([expr1] ;[ expr2] ;[ expr3])
循环体语句;
执行流程
for语句一般应用形式
for(循环变量赋初值;循环条件;循环变量增值)
{
循环体语句;
}
说明:
for语句中expr1,expr2 ,expr3 类型任意,都可省略,但分号;不可省
无限循环: for(;;);for语句可以转换成while结构
expr1;
while(expr2)
{
循环体语句;
expr3;
}
例子
#include
main( )
{ int i;
for(i=0;i<10;i++)
putchar(‘a’+i);
}
运行结果:abcdefghij
三种循环可互相嵌套,层数不限。外层循环可包含两个以上内循环,但不能相互交叉。嵌套循环的执行流程
嵌套循环的跳转
禁止:从外层跳入内层;跳入同层的另一循环;向上跳转;
(1) while()
{ ……
while()
{ ……
}
…...
}
(2) do
{ ……
do
{ ……
}while( );
…...
}while( );
(3) while()
{ ……
do
{ ……
}while( );
…….
}
(4) for( ; ;)
{ ……
do
{ ……
}while();
……
while()
{ ……
}
…...
}
程序举例
for(i=1;i<10;i++)
for(j=1;j<10;j++)
printf((j==9)?"%4d\\n":"%4d",i*j);
循环的嵌套(图解)
break语句
功能:在循环语句和switch语句中,终止并跳出循环体或开关体
说明:break只能终止并跳出最近一层的结构;break不能用于循环语句和switch语句之外的任何其它语句之中
continue语句
功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断;仅用于循环语句中
全部0条评论
快来发表一下你的评论吧 !