选择结构程序设计 4.1 if语句
IF语句是由一个布尔表达式和两个供选择的操作序列组成。运行时根据布尔表达式求值结果,选取其中之一的操作序列执行。有两种形式的IF语句:
if <布尔表达式> then <语句>;
if <布尔表达式> then <语句1>
else <语句2>;
当布尔表达式的值为真,则执行then后面的语句,值为假时有两种情况:要么什么也不做,要么执行else后面的语句。注意else前面没有分号,因为分号是两个语句之间的分隔符,而else并非语句。如果在该处添了分号,则在编译的时候就会认为if 语句到此结束,而把else当作另一句的开头,输出出错信息。
例:求y=f(x),当x>0时,y=1,当x=0时,y=0,当x<0时,y=-1
program lianxi;
var x,y:real;
begin
if x>0 then y:=1;
if x=0 then y:=0;
if x<0 then y:=-1;
writeln('y=',y);
end.
在Turbo Pascal语言if语句中被构造的语句只能是一条语句,当条件选择某个分支的计算要用多个语句描述时,就必须把该分支用begin和 end括来,写成复合语句。在用if语句连续嵌套时,如果你插入适量的复合语句,有利于程序的阅读和理解。
例:当x>0时候,计算x*x,并且输出x和x*x,
program lianxie3;
var x,x1:real;
begin
readln('x=',x);
if x>= then
begin
x1:=x*x;
writeln('x*x=',x1);
writeln('x=',x);
end;
end.
当if 语句嵌套时,Turbo Pascal约定else总是和最近的一个if配对。
4.2 case语句
case语句是由一个表达式和众多可选择的操作序列组成。运行时,根据表达式的求值结果,在众多的分支中选取一个分支执行。其形式为:
case 表达式 of
常量1:语句1;
常量2:语句2;
……
常量n:语句n;
else 语句 n+1 {可选项}
end;
表达式只能是顺序类型(除了实型以外的简单类型),其值必须是唯一确定并且和表达式类型相同。case语句执行和表达式值相匹配的case常数所指向的那条语句,如果没有相匹配的值,则执行else部分(如果有的话)或者什么也不做。在else前面的语句末尾有分号,这是和if语句不同的。
例:根据学生的成绩给予相应的等低,对应关系如下:
90——100 A
80——89 B
60——79 C
60以下 D
program chengji;
var s:real;ch:char;
begin
write('input the score: ');
readln(s);
if(s>=0)and(s<=100)then
case s div 10 of
10,9:ch:='B';
8:ch:='B';
7,6:='C';
else ch:='D';
end;
writeln(s,'--',ch);
end.