4.1 IF语句
   IF语句是由一个布尔表达式和两个供选择的操作序列组成。运行时根据布尔表达式求值结果,选取其中之一的操作序列执行。有两种形式的IF语句:
   类型一:if <布尔表达式> then <语句>
    类型二:if <布尔表达式> then <语句1>
       else <语句2>
  当布尔表达式的值为真,则执行then后面的语句,值为假时有两种情况:要么什么也不做,要么执行else后面的语句。注意else前面没有分号,因为分号是两个语句之间的分隔符,而else并非语句。如果在该处添了分号,则在编译的时候就会认为if 语句到此结束,而把else当作另一句的开头,输出出错信息。
例:根据学生的成绩给予相应的等级,对应关系如下:
  90——100 A
  80——89  B
  60——79  C
  60以下    D

Program Score;

Var

S:real;

Ch:char;

Begin

   Writeln(‘Please input Score:’);

   Readln(s);

   If (s>90) and (s<100) then ch:=’A’;

   If (s>80) and (s<89) then ch:=’B’;

   If (s>60) and (s<79) then ch:=’C’;

   If s<60 then ch:=’D’;

   Writeln(s,’—‘,ch);

   Readln;

End;
  在Pascal语言if语句中被构造的语句只能是一条语句,当条件选择某个分支的计算要用多个语句描述时,就必须把该分支用begin end括来,写成复合语句。在用if语句连续嵌套时,如果你插入适量的复合语句,有利于程序的阅读和理解。
例:当x>0时候,计算x*x,并且输出xx*x
 program lianxie3;
  var x,x1:real;
 begin
 readln('x=',x);
 if x>=0 then
  begin
   x1:=x*x;
   writeln('x*x=',x1);
   writeln('x=',x);
  end;
 end.
  if 语句嵌套时,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('Please input the score: ');
  readln(s);
  if(s>=0)and(s<=100)then
   case s div 10 of
    10,9:ch:='A';
    8:ch:='B';
    7,6:='C';
    else ch:='D';
   end;
  writeln(s,'--',ch);
 end.

 

练习:某幼儿园只收26岁的小孩,23岁入小班,4岁入中班,56岁入大班。编写程序输入姓名和年龄,判断小孩入哪个班?并按"姓名 年龄 班级"的格式输出。