条件 ( 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.
|
浙公网安备 33010602011771号