条件 ( 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.

 

posted on 2008-10-31 19:32  sandboy  阅读(584)  评论(0)    收藏  举报