概述
条件语句
在Turbo C2.0中条件语句的一般形式为:
if(表达式)
语句1;
else
语句2;
上述结构表示: 如果表达式的值为非0(TURE)即真, 则执行语句1, 执行完语 句1从语句2后开始继续向下执行;
如果表达式的值为0(FALSE)即假, 则跳过语句1而执行语句2。
注意:
1. 条件执行语句中"else 语句2;"部分是选择项,
可以缺省, 此时条件语句变成:
if(表达式)
语句1;
表示若表达式的值为非0则执行语句1 , 否则跳过语句1继续执行。
2. 如果语句1或语句2有多于一条语句要执行时,
必须使用"{"和"}"
把这些语句包括在其中, 此时条件语句形式为:
if(表达式)
{
语句体1;
}
else
{
语句体2;
}
3. 条件语句可以嵌套, 这种情况经常碰到, 但条件嵌套语句容易出错, 其原因主要是不知道哪个if对应哪else。
例如:
if(x>20||x
if(y<=100&&y>x)
printf("Good");
else
printf("Bad");
对于上述情况, Turbo C2.0规定: else语句与最近的一个if语句匹配,
上例中的else与if(y<=100&&y>x)相匹配。为了使else与if(x>20||x
必须用花括号。如下所示:
if(x>20||x
{
if(y<=100&&y>x)
printf("Good");
}
else
printf("Bad");
4. 可用阶梯式if-else-if结构。
阶梯式结构的一般形式为:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
.
.
else
语句n;
这种结构是从上到下逐个对条件进行判断, 一旦发现条件满点足就执行与它有关的语句, 并跳过其它剩余阶梯; 若没有一个条件满足,
则执行最后一个else语句n。最后这个else常起着"缺省条件"的作用。
同样, 如果每一个条件中有多于一条语句要执行时,
必须使用"{"和"}"把这
些语句包括在其中。
switch语句
在编写程序时, 经常会碰到按不同情况分转的多路问题, 这时可用嵌套if-else-fi语句来实现,
但if-else-if语句使用不方便, 并且容易出错。对这种情况, Turbo C2.0提供了一个开关语句。
开关语句格式为:
switch(变量)
{
case 常量1:
语句1或空;
case 常量2:
语句2或空;
.
.
case 常量n;
语句n或空;
default:
语句n+1或空;
}
执行switch开关语句时, 将变量逐个与case后的常量进行比较, 若与其中一个相等, 则执行该常量下的语句,
若不与任何一个常量相等, 则执行default 后面的语句。
注意:
1. switch中变量可以是数值, 也可以是字符。
2. 可以省略一些case和default。
3. 每个case或default后的语句可以是语句体,
但不需要使用"{"和"}"括起来。
下例的switch中变量为整数型。
main()
{
int test;
for(test=0; test<=10; test++)
{
switch(test)
{
case 1:
printf("%dn", test);
break;
case 2:
printf("%dn", test);
break;
case 3:
printf("%dn", test);
break;
default:
puts("Error");
break;
}
}
}
下例的switch中变量为字符型。
#include
main()
{
char c;
while(c!=27)
{
c=getch();
switch(c)
{
case 'A':
putchar(c);
break;
case 'B':
putchar(c);
break;
default:
puts("Error");
break;
}
}
}
for循环
for循环是开界的。它的一般形式为:
for(;
;
)
语句;
(1)初始化总是一个赋值语句, 它用来给循环控制变量赋初值;
(2) 条件表达式是一个关系表达式, 它决定什么时候退出循环;
(3)
增量定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用";"分开。
例如:
for(i=1; i<=10; i++)
语句;
上例中先给i赋初值1, 判断i是否小于等于10, 若是则执行语句, 之后值增加1。再重新判断, 直到条件为假,
即i>10时, 结束循环。
注意:
1. for循环中语句可以为语句体,
但要用"{"和"}"将参加循环的语句括起来。
2.
for循环中的"初始化"、"条件表达式"和"增量"都是选择项,
即可以缺省, 但";"不能缺省。省略了初始化,
表示不对循环控制变量赋初值。省略了条件表达式, 则不做其它处理时便成为死循环。省略了增量, 则不对循环控制变量进行操作,
这时可在语句体中加入修改循环控制变量的语句。
3. for循环可以有多层嵌套。
例16:
main()
{
int i, j, k;
printf("i
j kn");
for (i=0;
i<2; i++)
for(j=0;
j<2; j++)
for(k=0;
k<2; k++)
printf(%d %d
%dn", i, j, k);
}
while循环与do-while 循环
while循环的一般形式为:
while(条件)
语句;
while循环表示当条件为真时, 便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句.
例17:
#include
main()
{
char c;
c='