Visual Basic 程序设计 第四讲
第四章 基本的控制结构 4.1 顺序结构 4.2 选择结构 4.3 循环结构 4.4 其它辅助控制语句 4.5 常用算法 第四章 基本的控制结构 4.1 顺序结构 4.2 选择结构 4.3 循环结构 4.4 其它辅助控制语句 4.5 常用算法 4.6 常见错误 (顺序、条件、循环) Chen Ying
一. 赋值语句 形式: [LET]变量名=表达式 作用: 将表达式的值赋值给变量名, 一般用于给变量赋值或对控件设定属性值。 例: sRate!=0.1 Text1.Text = "欢迎使用Visual Basic 6.0” 说明:当表达式的类型与变量的类型不一致时, 强制转换成左边的精度 例: iA% = 10 / 3 iA中的结果为3 注意:虽然赋值号与关系运算符等于号都用“=”表示, VB系统会根据所处位置自动判断是何种意义的符号。 Chen Ying
二. 与用户交互 函数和过程 1. InputBox函数 InputBox(提示[,标题][,默认][,x 坐标位置][,y坐标位置]) 二. 与用户交互 函数和过程 1. InputBox函数 InputBox(提示[,标题][,默认][,x 坐标位置][,y坐标位置]) 其中: 提示 提示信息,标题 对话框标题,默认 输入区缺省值 函数返回输入值(字符串) ,值类型为字符类型 例:要在屏幕上显示如右上角的对话框,相应的语句如下: Dim strName As String * 40, strS1 As String * 40 strName= InputBox( “请输入你的姓名” + vbCrLf + “然后单击确定” , “输入框” ) 或者: strS1 = “请输入你的姓名” + Chr(13) + Chr(10) + “然后单击确定” strName= InputBox(strS1, “输入框”, , 100,100) 当键盘在输入框输入“王晓明” 后,变量strName获得键盘输入的值 Chen Ying
2. MsgBox函数和MsgBox过程 按钮值意义(P77,表1.4.1) 函数返回所选按钮整数值 Chen Ying
例4.1 编一帐号和密码检验程序 要求: 帐号不超过6位数字,密码4位字符(假设为“Chen”) 密码输入时在屏幕上以 “*”代替 若输入有错,显示提示信息 选择“重试”按钮,清除原内容,焦点重新定位,再输入 选择“取消”按钮,停止运行 分析: 帐号6位:MaxLength为6,输入结束按Tab引发LostFocus事件, IsNumeric函数判断是否为数字 密码:PassWordChar为“*”,单击“确定”激发事件判断密码对错,MsgBox函数设置密码错对话框 例:Li4-1.vbp Chen Ying
三.选择结构 1. If…Then语句(单分支结构) If <表达式> Then 语句块 End If 例:已知两个数x和y,比较它们的大小,使得x大于y。 If x<y Then t=x x=y y=t 或 If x<y Then t=x: x=y: y=t 注意:重要的是学会两个数的交换,若上述语句次序变一下,结果如何? Chen Ying
2. If…Then…Else语句(双分支结构) <语句块1> Else <语句块2> End If 或:If <表达式> Then <语句1> Else <语句2> 例:计算分段函数 单分支结构实现: y=cos(x)-x^3+3*x If x<>0 Then y=sin(x)+sqrt(x*x+1) 双分支结构实现: If x<>0 Then y=sin(x)+sqrt(x*x+1) Else y=cos(x)-x^3+3*x End If Chen Ying
3. If…Then…ElseIf语句(多分支结构) <语句块1> ElseIf <表达式2>Then <语句块2> … [Else 语句块 n+1 ] End If 说明:不管有几个分支,依次判断,当某条件满足,执行相应的语句块,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。 注意:ElseIf不能写成 Else If。 Chen Ying
例4.3:已知百分制成绩mark,显示对应的五级制成绩。 下列算法哪些正确,哪些错误? Chen Ying
If语句的嵌套是指If或Else后面的语句块中又包含If语句。 If <表达式1> Then 形式如下: If <表达式1> Then If <表达式11> Then … End If 例:已知x,y,z三个数,使得x>y>z。 If x<y Then t=x: x=y: y=t If y<z Then t=y: y=z: z=t If x<y Then t=x: x=y: y=t 注意:书写锯齿型 If 与End If配对。 Chen Ying
5. Select Case语句(情况语句) Select Case 变量或表达式 Case 表达式列表1 语句块1 Case 表达式列表2 语句块2 … [Case Else 语句块n+1] End Select <表达式列表>与<变量或表达式>同类型 可以是下面四种形式之一: 例: 1,表达式 “A” 2,一组枚举表达式(用逗号分隔) 2,4,6,8 3,表达式1 To 表达式2 60 To 100 4,Is 关系运算符表达式 Is < 60 数值型或字符串表达式 Chen Ying
例:已知变量strC中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。 用多分支结构实现: (例4.2) If Ucase(strC) >=" A" And Ucase (strC) <=" Z" Then Print strC + "是字母字符" ElseIf strC >=" 0" And strC <=" 9" Then Print strC + "是数字字符" Else Print strC + "其他字符" End If 用Select Case语句实现: (例4.5) Select Case strC Case "a" To "z","A" To "Z" Print strC + "是字母字符" Case "0" To "9" Case Else End Select Chen Ying
分析:产生1~10操作数,可通过Int(10 * Rnd + 1) 实现 设置的控件 Label1 Text1 例4.7 由计算机来当一年级的算术老师,要求给出一系列的1~10的操作数和运算符,学生输入该题的答案,计算机根据学生的答案判断正确与否,当结束时给出成绩。 分析:产生1~10操作数,可通过Int(10 * Rnd + 1) 实现 设置的控件 Label1 Text1 Picture1 例:Li4-7.vbp Command1 Chen Ying
6.条件函数 IIf函数形式是: IIf(表达式,当表达式为True时的值,当表达式为False时的值) 例: 将x,y中大的数放入Tmax变量中,则:Tmax=IIf(x > y,x,y) Choose函数形式是: Choose(数字类型变量,值为1的返回值,值为2的返回值……) 例: Nop是1-4的值,转换成 + 、-、×、÷运算符的语句如下: Op= Choose(Nop,"+","-","×","÷") 说明:当Nop值为1,返回字符串“+”,赋予Op变量;Nop值为2,返回字符串“-”,赋予Op变量,依次类推;当Nop是1-4之间的非整数,系统自动取其整数再判断;若Nop不在1-4之间,函数返回Null值。 Switch函数形式是: Switch(条件表达式1,条件表达式1为True时的值 [,条件表达式2,条件表达式2为True时的值……]) Chen Ying
常见错误 1.在选择结构中缺少配对的结束语句 对多行式的If块语句中,应有配对的 End If语句结束。 2. 多边选择ElseIf关键字的书写和条件表达式的表示 ElseIf不要写成Else If; 多个条件表达式次序问题 3. Select Case语句的使用 Select Case 后不能出现多个变量; Case子句后不能出现变量 Chen Ying
上机实习二要求: 上课例题 实验二 实验三 Chen Ying