第4章 选 择 结 构 章
4.1 条件表达式
4.1.1 关系运算符与关系表达式 4.1.2 布尔运算符与布尔表达式
4.4 按钮类控件
4.4.1 Button控件 Button控件 4.4.2 BitBtn控件 BitBtn控件 4.4.3 CheckBox控件 CheckBox控件 4.4.4 RadioButton控件 RadioButton控件 4.4.5 RadioGroup控件 RadioGroup控件
4.1.3 运算符的优先顺序 4.1.4 求值方式 4.2 IF语句 IF语句 4.2.1 简单条件语句 4.2.2 复合条件语句 2.2.3 布尔型数据 4.3 Case语句 Case语句
4.3.1 多分支选择结构 4.3.2 Case语句的应用 Case语句的应用
习题4 习题4
? ? ? ? ?
4.1.1 关系运算符与关系表达式 关系运算符 > < >= 关系表达式 关系表达式的格式为: 〈 表达式 〉〈 关系运算符 〉〈 表达式 〉[〈关系运算符〉 表达式1〉 关系运算符〉 表达式2〉 〈关系运算符〉 〈表达式3〉…] 表达式 〉
? ?
4.1.2 布尔运算符与布尔表达式 and or not xor a, b操作数: 操作数: 操作数 a and b a or b not a a xor b
4.1.3 运算符的优先顺序
【例4-1】判断某个年份是闰年的根据是年份数满足下述条 件之一: (1) 能被4整除,但不能被100整除的年份都是闰年。 (2) 能被100整除,又能被400整除的年份都是闰年。 设变量y表示年份,写出判断y是否闰年的布尔表达式。 解:判断y是否满足条件(1)的布尔表达式是: (y Mod 4 = 0) And (y Mod 100 <> 0) 判断y是否满足条件(2)的布尔表达式是: (y Mod 100 = 0) And (y Mod 400 = 0) 两者取“或”,即得判断闰年的布尔表达式: (y Mod 4 = 0) And (y Mod 100 <> 0) Or (y Mod 100 = 0) And (y Mod 400 = 0)
4.1.4 求值方式 【例4-2】设变量x = 4,y = -3,a = 7.5,b = - 6.2,求表达式 (x + y > a + b) And (Not y < b) 的值。 解:
(1) 先作算术运算:(1 > 1.3) And (Not y < b) (2) 再作关系运算:False And Not False (3) 终止运算得:False
4.2 IF语句 语句
If语句又称为条件语句,是最常用的单条件选择结构。 If语句的 语法格式为: If 〈条件〉 Then [〈语句 〉] [ Else 〈语句 〉]; 条件〉 语句2〉 〈语句1〉 4.2.1 简单条件语句 【例4-3】输入x,计算y的值,其中:
? x 2 + 2 x ( x ≥ 0) y=? ? 1 ? 2 x ( x < 0)
? 计算按钮的单击事件代码: ? var x,y:float; begin ? x:=strtofloat(edit1.text); ? if x>=0 ? then y:=x*x+2*x ? else y:=1-2*x; ? edit2.text:=floattostr(y); ? end;
【例4-4】编辑框的Pass
wordChar属性可以隐蔽用户通过键盘输入的字符, 常用来编写检查用户口令的程序,如图4-4所示。
设计步骤如下: (1) 建立应用程序用户界面。 (2)属性设置:
(3)代码设计
Button1的OnClick事件代码: 的 事件代码: 事件代码 procedure TForm1.Button1Click(Sender: TObject); begin if lowercase(edit1.Text) = 'abcd' then panel1.Caption := '欢迎使用本系统 欢迎使用本系统!' 欢迎使用本系
统 else panel1.Caption:= '对不起,口令错 ; 对不起, 对不起 口令错!' edit1.setfocus; end; ;
4.2.2 复合条件语句
如果在上述if语句中含有if语句,称为复合语句。 如:在上例中利用edit 的 tag属性进行计数,控制口令输入 次数不能多于三次。则代码如下:
begin ? if lowercase(edit1.Text) = 'abcd' then ? panel1.Caption := '欢迎使用本
系统!' ? else ? 如果 已输入3次,显示“无权使用”,并进行相应设置 否则 显示口令错 ? panel1.Caption:= '对不起,口令错!' ; ? edit1.setfocus; end;
begin
? if lowercase(edit1.Text) = 'abcd' then ? panel1.Caption := '欢迎使用本系统!' ? else ? begin ? edit1.tag:=edit1.tag+1; ? if edit1.tag=3 then ? begin ? panel1.Caption:= ' no right '; ? groupbox1.enabled:=false; ? end ? else ? panel1.Caption:= '对不起,口令错' ; ? end;
? end;
4.3 Case语句 4.3.1 多分支选择结构 Case语句的语法格式为: Case 〈选择器表达式〉 of 选择器表达式〉 〈情况常量表1〉:〈语句 〉; 情况常量表 〉 〈语句1〉 ... 〈情况常量表n〉:〈语句 〉; 情况常量表 〉 〈语句n〉 [ Else 〈其他语句列