1、第五课选择结构布尔表达式、IFIF语句语句选择结构选择结构 选择性语句包括if语句和case语句。选择性语句实现程序的选择结构。第一节 布尔运算 要判断“ab”是否成立,其结果并不是一个数值,而是“成立”或“不成立”。也可用“真”或“假”这样的逻辑值来表示。在Pascal语言中,具有这种性质的数据类型是布尔类型。一、布尔常量和布尔变量一、布尔常量和布尔变量 1布尔常量的数据只有二个:真和假,分别用标准常量TRUE(真)和FALSE(假)来表示。并约定将FALSE的序号定为0,TRUE为1。2布尔变量必须预先定义后使用。例如:var a,b:boolean;begin a:=TRUE;b:=FA
2、LSE;其中,a和b为布尔类型的变量。boolean是预定义标识符,意为“布尔型”。第五课布尔表达式、IFIF语句语句二、布尔表达式二、布尔表达式 关系式是由一个关系运算符(也称比较符)将两个算术表达式或两个字符表达式联结起来的式子。关系运算符有以下6个:=这些关系运算符分别为等于、不等于、大于、小于、大于等于和小于等于等于、不等于、大于、小于、大于等于和小于等于。关系式代表一个布尔值,关系式成立时的值为TRUE,否则值为FALSE。所以关系式是简单的布尔表达式。除了整型和实型可以在关系运算符两边混合出现外,关系运算符两边的表达式的值必须是相同的有序类型。例如,字符不能和数值比较。两个及多个关
3、系运算符不能连用。例如,ab、=、=、=例如,当a的值为TRUE时,b为FALSE时,以下是一些符合语法的布尔表达式及其值。a AND b 的值为FALSE a OR b 的值为TRUE NOT a AND b 的值为FALSE NOT a OR b 的值为FALSE NOT(a OR b)的值为FALSE NOT b OR a 的值为TRUE NOT(b OR a)的值为TRUE 34 的值为FALSE (3=4)AND a 的值为TRUE ab 的值为TRUE ab 的值为FALSE (a=b)OR(a=4)or(78)是符合语法的。输出一个布尔型数据可用write或writeln。例如当
4、a的值为TRUE时,执行语句writeln(a=,a),则输出结果是:a=TRUE 例如执行语句writeln(3+45),则输出结果是:FALSE。第五课布尔表达式、IFIF语句语句第二节 if语句if语句由一个布尔表达式和两个供选择的语句组成。运行时根据布尔表达式求值的结果,选取其中之一的语句执行。有两种形式的if语句:if then if then else 当布尔表达式的值为真,则执行then后面的语句。值为假时有两种情况:要么什么也不做,要么执行else后面的语句。注意else前面没有分号分号,因为分号是两个语句间的分隔符号,而else并非语句。如果在该处画蛇添足加了分号,则编译时就
5、会认为if语句到此结束,而把else当作另一语句的开头,输出语法错误的信息。第五课布尔表达式、IFIF语句语句语句1FALSETRUE 布尔表达式 布尔表达式语句1语句2TRUEFALSE第五课布尔表达式、IFIF语句语句例例4-14-1 输出两个整数中的较小数。program example4_1_1;program example4_1_1;var var x,y:integer;x,y:integer;begin begin readln readln(x,y);(x,y);if xy then writeln(x)else writeln if xy then writeln(x)el
6、se writeln(y)(y)end.end.本例也可以用两条if语句来实现,程序如下。program example4_1_2;program example4_1_2;var var x,y:integer;x,y:integer;begin begin readln readln(x,y);(x,y);if xy then writeln if xy then writeln(x);(x);if y=x then writeln if y=x then writeln(y)(y)end.end.第五课布尔表达式、IFIF语句语句例例4-24-2 输入一个年号(year),判断它是不是闰
7、年。判断某年是否闰年的条件是被条件是被4 4整除而不能被整除而不能被100100整除,或者能被整除,或者能被400400整除整除。因此当布尔表达式(year MOD 4=0)AND(year MOD 1000)OR(year MOD 400=0)year MOD 4=0)AND(year MOD 1000)OR(year MOD 400=0)的值等于TRUE时,这一年就是闰年。program example4_2;program example4_2;var var year:integer;year:integer;begin begin write(Enter year:);write(E
8、nter year:);readln readln(year);(year);if(year MOD 4=0)AND(year MOD 1000)OR(year MOD 400=0)if(year MOD 4=0)AND(year MOD 1000)OR(year MOD 400=0)then writeln then writeln(year:6,is a leap year.)(year:6,is a leap year.)else writeln else writeln(year:6,is not a leap year.);(year:6,is not a leap year.);r
9、eadln readln;end end.第五课布尔表达式、IFIF语句语句 例例4-34-3 读入一个小写字母。如果这个字母在字母表的前半部,则输出其后继字母;否则输出其前趋字母。var var letter:char;letter:char;begin begin readln readln(letter);(letter);if letter=if letter=m m then writeln(Succ then writeln(Succ(letter)(letter)else writeln(Pred else writeln(Pred(letter);(letter);readln
10、 readln;end.end.第五课布尔表达式、IFIF语句语句 1/(1/(x-2)(x2)x-2)(x2)例例4-4 4-4 求求y=y=x (x=2)x (x=2)program example4_4;program example4_4;var var y,x y,x:real;real;begin begin writeln writeln(Input x(Input x:););readln readln(x);(x);if x=2 then y if x=2 then y:=x else y=x else y:=1/(x-2);=1/(x-2);writeln(y=,y);wr
11、iteln(y=,y);readln readln;end end.同时参考P42 4-14 P44 4-16第五课布尔表达式、IFIF语句语句 var y,x,a:real;begin writeln(Input a and x:);readln(a,x);if xa then y:=x;writeln(y=,y)end.程序运行结果如下:Input a and x:1 4 (从键盘输入a=1,x=4)y=4.0000000000E+00 例例4-54-5 求y=1 (x=a)x (xa)a (xa)第五课布尔表达式、IFIF语句语句在Pascal条件语句格式中,语句1和语句2只能是一条语句
12、。当条件选择某个分支的计算要用多个语句描述时,就得把该分支用begin和end括起来,写成复合语句。另外,实际书写多重if语句连续嵌套时,插入适量的复合语句,可以更清晰地表示if语句的内部结构。下面的if语句由于使用嵌套结构,增加了阅读理解本语句的难度。if e1 then if e2 then s1 else s2if e1 then if e2 then s1 else s2 在此if语句中,else对应着哪一个if?Pascal语法规定else总是与最近的一个if配对。根据Pascal语法,可以使用复合语句来表示以上嵌套结构,实现相同的功能,同时,使得本语句表达的意思变得较易理解。if
13、e1 thenif e1 then begin begin if e2 then s1 if e2 then s1 else s2 else s2 end end 第五课布尔表达式、IFIF语句语句如果使用复合语句,例4-5也可以用以下方法求解。program example4_5_2;program example4_5_2;var var y,x,a:real;y,x,a:real;begin begin writeln(Input a and x:);writeln(Input a and x:);readln readln(a,x);(a,x);if xa then y:=a if xa)a (xa)习题习题2输入两门课的考试成绩放在整型变量A和B中。如果都及格(成绩60)就显示“Pass”,否则显示“Fail”。3某店商品打折促售。原价200元以下(含200元)的商品打九五折;200元以上到2000元(含2000元)的商品打九折;2000元以上的商品打八八折。输入商品原价,输出打折后的价格。4。上机完成:P46:例4-19P48:例4-21