分支结构(选择结构)

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

分支结构(选择结构)

布尔运算(逻辑运算)

要判断“ A>B”是否成立,其结果不是一个具体的数值,而是“真”或“假”,即“是”或“否”的问题。这类问题在我们日常生活中是很多的,诸如这类判断的问题,其结果都是只有两个:真或假,这就是我们所说的布尔运算(逻辑运算)。

∙布尔常量和布尔变量

布尔型的常量或变量的值只有两个: TRUE(真)和 FALSE(假)。要把一个变量定义成布尔类型,用的数据类型是: BOOLEAN。例如程序:

var a,b:boolean;

begin

a:=true;

b:=false;

……

end.

∙布尔表达式

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

∙关系运算符: =; <>; >; <; >=; <=,是用来进行关系操作(对比)运算的符号,其结果为 BOOLEAN型。如: 2=3,其结果为 FALSE。 *注意:这里的“ =”与赋值

符号“: =”是完全不同的,其作用和结果均不同。

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

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

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

à >,<,>=,<=,<>,= 。

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

由上可以看出:

∙用 AND运算时,左右两个值同为 TRUE时,运算结果才为 TRUE,即两个条件同时满足,结果才为 TRUE。这就是我们平常所说的“和”。

∙用 OR运算时,左右两个值只需有一个为 TRUE,运算结果就为 TRUE,即两个条件满足其中一个,结果就为 TRUE。这就是我们平常所说的“或”。

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

∙例: [例 4、 1]

程序运行结果是:

false

true

true

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

条件 ( IF ) 语句

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

条件语句有两种格式:

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

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

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

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

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

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

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.

多分支语句

IF语句只能使程序有两个分支,当遇到需要有两个以上分支时, IF语句就很不适用了,这时我们可以用 CASE语句,它能使程序有很多个分支。其效果如下图:

相关文档
最新文档