多分支语句

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

布尔表达式

布尔表达式有以下两种操作:

1、关系运算符:=;<>; >; <; >=; <=,是用来进行关系操作(对比)运算的符号,其结果为BOOLEAN型。如:2=3,其结果为FALSE。

*注意:这里的“=”与赋值符号“:=”是完全不同的,其作用和结果均不同。

2、逻辑运算符:AND(逻辑和);OR(逻辑或);NOT(逻辑非)。是用来进行逻辑值的

逻辑运算的。如:(2=3)AND (4<>3),值为FALSE。

布尔表达式的运算顺序是:()→函数→NOT→*,/.DIV,MOD,AND,+,-,OR→>,<,>=,<=,<>,=。

布尔表达式中的逻辑运算如下表所示:a和b均为布尔型表达式或常/变量.

a b A and b A or b Not a Not b

true false false true false True

true true true true false False

false true false true true False

false false false false true True

由上可以看出:

1、用AND运算时,左右两个值同为TRUE时,运算结果才为TRUE,即两个条件同时满足,结果才为TRUE。这就是我们平常

所说的“和”。

2、用OR运算时,左右两个值只需有一个为TRUE,运算结果就为TRUE,即两个条件满足其中一个,结果就为TRUE。这就是

我们平常所说的“或”。

3、用NOT运算时,只是把其后的逻辑值取反,即“非”。

4、例:[例4、1]

Program q41;

Var a,b,c,d:integer;

P:boolean;

Begin

A:=1;

B:=2;

C:=3;

D:=4;

P:=(a=b);

Writeln(p);

P:=((a

Writeln(p);

Writeln((a>d) or (c>b)); End. 说明四个整数型变量

说明一个布尔型变量

程序开始

赋值

赋值

赋值

赋值

把(A=B)这个逻辑运算的结果赋给P,即P的值为FALSE

打印P

把((a

打印P

打印(a>d) or (c>b)这个逻辑运算的结果

程序结束

程序运行结果是:

false

true

true

由上可以看出:逻辑运算中的关系运算均用括号“()”括起来。关系运算/逻辑运算的结果也是一个值(BOOLEAN型),所有布尔运算也是表达式,可以赋给一个变量,也可以直接用输出语句输出。打印输出时,屏幕上就显示“false”或“true”。

第二节、条件语句

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

布尔表达式

语句序列1 语句序列2

FALSE TRUE

条件语句有两种格式:

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) t hen 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');

相关文档
最新文档