您现在的位置:小学生自学网>> 信息>> pascal语言>> 基础教程

pascal第八讲:条件 ( IF ) 语句

作者: 来源: 发布时间:2009年05月12日 点击数:
 
条件 ( IF ) 语句

  

条件语句是用一个布尔表达式的值来决定程序的走向。即程序提供一个分支,由布尔表达式的值来决定程序究竞运行哪个分支。即程序已经不是顺序结构了,而是提供了一个分支结构。每次只可能运行其中的一个分支。如下图所示:



条件语句有两种格式:

1、 if <布尔表达式 > then <语句 >;

2、 if <布尔表达式 > then <语句 1> else <语句 2>;

格式 1的作用是:如果布尔表达式值为 TRUE(即该条件满足),则运行语句,否则不运行任何语句。

格式 2的作用是:如果布尔表达式值为 TRUE(即该条件满足),由运行语句 1,否则(即布尔值为 FALSE,亦即条件不满足)就运行语句 2。注意:只有条件语句结束时才有分号。

注意:如果条件语句中的分支语句不止一句,可用“ begin …… end;”来框住,加以区别。如:以下两个程序都为从键盘输入 1个整数,打印出它的算术平方根。 [例 4、 2]:

Program q421;
Var a:integer; 
Begin
 Readln(a);
 If (a<0) then
 Begin
  Writeln( ‘ WRONG! ’ );
 End else
 Begin
  Writeln(a);   Writeln(sqrt(a):8:2);
 End;
End.  Program q421;
Var a:integer; 
Begin 
Readln(a); 
If (a<0) then Writeln( ‘ WRONG! ’ ) else Writeln(sqrt(a):8:2); 
End.  

条件语句的嵌套:条件语句是可以嵌套的,例如:

if a>0 then if a>1 then …… else …… else … .;

上述语句看起来无法理解,但如果我们把它改写为以下形式时,就一目了然了:

if a>0 then begin
        if a>1 then begin
            ……
        end 
else begin
            ……
        end
else begin
        ……
end;
        
也就是说,第二个 IF语句只是第一个 IF语句中的一部分,即嵌入的一个 IF语句。

例:输入一个年份,判断它是否闰年。我们知道,每四年中有一年是闰年,即有 366天,而其余三年是平年,只有 365天,而按照规定: 1、如果哪一年的年份能被 4整除,则该年一般为闰年; 2、这样,每 100年又会少一天,所以又规定如果该年能被 4整除,又能被 100整除,则认为该年不是闰年,而是平年; 3、这样,每 400年又会多出一天,所以又规定,如果哪一年能被 400整除,则该年又是闰年。

由上可知: 1980, 1996, 1984年均为闰年, 1900年为平年,而 2000年为闰年。

程序如下: [例 4、 3]

Program q43;
Var y:integer;
Begin
     Readln(y);
     if (y mod 4=0) then begin
        if (y mod 100=0) then begin
           if (y mod 400=0) then begin
              writeln(’run’);
           end else begin
               writeln(’ping’);
           end;
        end else begin
             writeln(’run’);
        end;
     end else begin
         writeln(’ping’);
     end;
end.