多分支语句
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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');