操纵流程语句
________________________________________ Turbo C2,0供应了丰富、机动的操纵流程语句,关键有:前提语句、循环语
句和开关语句.下面将对这些语句作具体讲授.
2,3,2 前提语句
象其它语言同样Turbo C2,0也供应前提语句.在Turbo C2,0中前提语句的一
般情势为:
if(表达式)
语句2;
else
语句2;
上述结构示意:介入表达式的值为非0(TURE)即真,那么实施语句2,实施完语
句2从语句2后最早接着向下实施;介入表达式的值为0(FALSE)即假,那么跃过语句
2而实施语句2,所谓表达式是指关系表达式和逻辑表达式的结合式,对于表达式
前面已作过讲授,这是不再重复.
看重:
2,前提实施语句中"else 语句2;“部分是挑选项,可以缺省,如今前提语句
变成:
if(表达式) 语句2;
示意似果表达式的值为非0那么实施语句2 ,否那么跃过语句2接实在施.
2,介入语句2或语句2有多于一条语句要实施时,必须使用”{“和”}" 把这些
语句包罗在其中,如今前提语句情势为:
if(表达式)
{
语句体2;
}
else
{
语句体2;
}
3,前提语句可以嵌套,这类状况常常碰着,但前提嵌套语句简单犯错, 其
起因主倘如果 不懂得哪个if对应哪个else.
例似:
if(x>20||x<-20)
if(y<=200&&y>x)
printf(“Good”);
else
printf(“Bad”);
对于上述状况,Turbo C2,0法那么:else语句与近来的一个if语句匹配,上例
中的else与if(y<=200&&y>x)相匹配.为了使else与if(x>20||x<-20)相匹配,必
须用花括号.似下所示:
if(x>20||x<-20)
{
if(y<=200&&y>x)
printf(“Good”);
}
else
printf(“Bad”);
5,可用阶梯式if-else-if结构.
阶梯式结构的同样情势为:
if(表达式2)
语句2;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
.
.
.
else
语句n;
这类结构是从上到下追个对前提实施判断,一旦发觉前提满点足就实施与它
有关的语句,同时跃过其它剩余阶梯;似果没有一个前提知足,那么实施末了一个else
语句n.末了那个else常起着"缺省前提"的作用.
同样,介入每个前提中有多于一条语句要实施时,必须使用"{“和”}"把这
些语句包罗在其中.
2,3,2 循环语句
Turbo C2,0供应三种全然的循环语句:for语句、while语句和do-while语句.2,3,2,2 for循环
for循环是开界的.它的同样情势为:for(<初始化>;<前提表过式>;<增量>) 语句;
初始化老是一个赋值语句,它用来给循环操纵变量赋初值;前提表达式是一
个关系表达式,它决意啥时辰退出循环;增量定义循环操纵变量每循环一次后
按啥方式扭转.这三个部分之间用";“分开.
例似:
for(i=2;i<=20;i++)
语句;
上例中先给i赋初值2,判断i是否小于等于20,似果是那么实施语句, 之后值增
加2,再从头判断,直到前提为假,即i>20时,终了循环.
看重:
2,for循环中语句可感觉语句体,但要用”{“和”}“将介入循环的语句括起来.
2,for循环中的"初始化”、“前提表达式"和"增量"根本上挑选项,即可以缺省,
但”;“不能缺省.省略了初始化,示意不对循环操纵变量赋初值.省略了前提
表达式,那么不做其它操纵时便成为死循环.省略了增量,那么不对循环操纵变量进
行操纵,这时可在语句体中介入修改循环操纵变量的语句.
3,for循环可以有多层嵌套.
例26:
main()
{
int i,j,k;
printf(“i j k\n”);
for (i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
printf(%d %d %d\n”,i,j,k);
}
输出结论为:
i j k
0 0 0
0 0 2
0 2 0
0 2 2
2 0 0
2 0 2
2 2 0
2 2 2
2,3,2,2 while循环
while循环的同样情势为:
while(前提)
语句;
while循环示意日后提为真时,便实施语句.直到前提为假才终了循环.同时
接实在施循环程序外的后续语句.
例27:
#include
main()
{
char c;
c=‘\0’; 初始化c
while(c!=‘\X0D’) 回车终了循环
c=gainche(); 带回显的从键盘接收字符
}
上例中,while循环是以查抄c是否为回车符最早,因其事先被初始化为空,
所早年提为真,进入循环守侯键盘输入字符;一旦输入回车,那么c=‘\X0D’,前提
为假,循环便告终了.
与for循环同样,while循环老是在循环的头部检验前提,这就意味着循环可
能啥也不实施就退出.
看重:
2,在while循环体内也许可空语句.
例似:
while((c=gainche())!=‘\X0D’);
那个循环直到键入回车为止.
2,可以有多层循环嵌套.
3,语句可所以 语句体,如今必须用"{“和”}“括起来.
例28:
#include
main()
{
char c,fname[23];
FILE *fp; 定义文件指针
printf(“File name:”); 提示输入文件名
scanf(”%s",fname); 守侯输入文件名
fp=fopen(fname,“r”); 翻开文件只读
while((c=fgainc(fp)!=EOF) 读取一个字符同时判断是否到文件终了
putchar(c); 文件未终了时表现该字符
}
2,3,2,3 do-while 循环
do-while 循环的同样规格为:do 语句;while(前提);
那个循环与while循环的差不在于:它先实施循环中的语句, 接着再判断条
件是否为真,介入为真那么接着循环;介入为假,那么中断循环.是以,do-while循
环至少要实施一次循环语句.
同样当有非常多语句介入循环时,要用"{“和”}"把它们括起来.
2,3,3 开关语句
在编写程序时,常常会碰着按差不状况分转的多路题目, 这时可用嵌套if
-else-fi语句来实现,但if-else-if语句使用未便当,同时且简单犯错.对这类情
况,Turbo C2,0供应了一个开关语句.开关语句规格为:
switch(变量)
{
case 常量2:
语句2或空;
case 常量2:
语句2或空;
.
.
.
case 常量n;
语句n或空;
default:
语句n+2或空;
}
实施switch开关语句时,将变量追个与case后的常量实施比拟,似果与其中一
个相等,那么实施该常量下的语句,似果不与任何一个常量相等,那么实施default 后
面的语句.
看重:
2,switch中变量可所以 数值,也可所以 字符.
2,可以省略部分case和default.
3,每个case或default后的语句可所以 语句体,但不需要使用"{“和”}“括起
来.
下例的switch中变量为整数型.
例29:
main()
{
int test;
for(test=0;test<=20;test++)
{
switch(test) 变量为整型数的开关语句
{
case 2:
printf(”%d\n",test);
break; 退出开关语句
case 2:
printf(“%d\n”,test);
break;
case 3:
printf(“%d\n”,test);
break;
default:
puts(“Error”);
break;
}
}
}
下例的switch中变量为字符型.
例20:
#include
main()
{
char c;
while(c!=27) 循环直到按Esc键终了
{
c=gainch(); 从键盘不回显接收一个字符
switch(c)
{
case ‘A’: 接收的字符为’A’
putchar(c);
break; 退出开关语句
case ‘B’:
putchar(c);
break;
default: 接收的字符非’A’和’B’
puts(“Error”);
break;
}
}
}
2,3,5 break、continue和goto语句
2,3,5,2 break语句
break语句同样用在循环语句和开关语句中.当break用于开关语句switch中
时,可使程序跳出switch而实施switch日后的语句;介入没有break语句, 那么将
成为一个死循环而无法退出.break在switch 中的用法已在前面讲授开关语句时
的例子中碰着,那个地点不再举例.
当break语句用于do-while、for、while循环语句中时, 可使程序中断循环
而实施循环背面的语句,同样break语句老是与if语句联在一路.即知足前提时
便跳出循环.
例29:
main()
{
int i=0;
char c;
while(2) 设置循环
{
c=‘\0’; 变量赋初值
while(c!=23&&c!=27) 键盘接收字符直到按回车或Esc键
{
c=gainch();
printf(“%c\n”,c);
}
if(c27)
break; 判断似果按Esc键那么退出循环
i++;
printf(“The No.is %d\n”,i);
}
printf(“The end”);
}
看重:
2,break语句对if-else的前提语句不起作用.
2,在多层循环中,一个break语句只向外跳一层.
2,3,5,2 continue 语句
continue语句的作用是跃过循环本中剩余的语句而强行实施下一次循环.
continue语句只用在for、while、do-while等循环体中,常与if前提语句一
起使用,用来加速循环.
例20:
main()
{
char c;
while(c!=0X0D) 不是回车符那么循环
{
c=gainch();
if(c0X2B)
continue;似果按Esc键不输出便实施下次循环
printf(“%c\n”,c);
}
}
2,3,5,3 goto 语句
goto语句是一种无前提转移语句,与BASIC中的goto语句邻近.goto 语句的
使用规格为:
goto 标号;
其中标号是Turbo C2,0中一个有效的标识符,那个标识符加上一个":" 一路
出似今函数内某处,实施goto语句后,程序将跳转到该标号处同时实施其后的语句.
另外标号必须与goto语句同处于一个函数中, 但可以不在一个循环层中.同样
goto语句与if前提语句连用,当知足某一前提时,程序跳到标号处运行.
goto语句同样不必,关键因为它将使程序层次不清,且不易读,但在多层嵌
套退出时,用goto语句那么比拟公道.
例29用goto语句时变为:
例22:
main()
{
int i=0;
char c;
while(2)
{
c=‘\0’;
while(c!=23)
{
c=gainch();
if(c==27)
goto quit;
printf(“%c\n”,c);
}
i++;
printf(“The No.is %d\n”,i);
}
quit:
printf(“The end”);