iisrp 第四章基本的控制结构 (8学时) 41顺序结构 4.2选柽结构 43循环结构 4.4其它辅助控制语句 4.5常用算法(一) 46常见错误(版底、条件环)
第四章 基本的控制结构 (8学时) 4.1 顺序结构 4.2 选择结构 4.3 循环结构 4.4 其它辅助控制语句 4.5 常用算法(一) 4.6 常见错误 (顺序、条件、循环)
赋值语句 形式:[E门变量名一表达式 作用:将表达式的值赋值给变量名 般用于给变量赋值或对控件设定属性值. 例: sRate!=0 Ie*1et"迎使用 isual basic e0° 当表达式的类型与变量的类型不一致时强制转换成左边的 精度 1A%=10/3A中的结果为3 注意:虽然赋值号与关系运算符等于号都用“="表 统会根据所处的位置自动判断是何种意义的符号。,VB系
一 . 赋值语句 形式: [LET]变量名=表达式 作用: 将表达式的值赋值给变量名. 一般用于给变量赋值或对控件设定属性值. 例: sRate!=0.1 Text1.Text = "欢迎使用Visual Basic 6.0” 当表达式的类型与变量的类型不一致时,强制转换成左边的 精度 iA% = 10 / 3 iA中的结果为3 注意:虽然赋值号与关系运算符等于号都用“=”表示,VB系 统会根据所处的位置自动判断是何种意义的符号
与用户交互函数和过程 1. InputBox函数 InputBox(提示[,标题][,缺省[,x坐标位置[,y坐标位置) 其中:提示提示信息标题对话框标题,缺省输入区缺省值 函数返回字符类型 尔的名 例要在屏幕上显示如下的对话框:器峰击能 取消 Dim strName As String 40 strs As String*40 王晓明 相应的语句如下: strName= Input Box(“请输入你的姓名”+ vbCrlf+“然后单击确定”,“输入框” 也可以: strS1=“请输入你的姓名”+Chr(13)+Chr(10)+“然后单击确定 strname= InputBox(strS1,“输入框”,,100,100) 当键盘输入“王晓明”后变量 strName获得键盘输入的值
二. 与用户交互函数和过程 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获得键盘输入的值
2. MsgBox函数和 MsgBox过程 函数形式:变 量[ %1=MsgBoX (提示按钮,杯题D 过程形式: Msg Box提示按钮标题] 按钮值如下: 函数返回所选按钮整数值: 分组内部常数按钮值 描述 0只显示0k按钮 内部常数返回值被按下的按钮 1显示0k, Cancel按 coOk Ok 钮 woAboutRetryl2显示 About, Retry,io按钮 cAncel Cancel 数 IoresNoCancel3显示Ye,No, CancEl按钮 vbAbout About 目beo 显示Yes,N按钮 reTry Retry voRetr Cancel 5显示Ry, Cancel按扭 16关键信息郾标红色STP标志 culmore Ignore 32问信息陈标? byes 类 ExClamation 48警告信息医标! boNo 型matn 64信息图标i
2. MsgBox函数和MsgBox过程 函数形式:变量[%] = MsgBox(提示[,按钮][,标题]) 过程形式: MsgBox 提示[,按钮][,标题] 按钮值如下: 函数返回所选按钮整数值:
例3,2编一帐号和密码检验程序。 要求 帐号不超过6位数字,有错清除原内容再输入 密码输入时在屏幕上以“*”代替;若密码错,显示有关信息, 选择“重试”按钮,清除原内容再输入,选择“取消”按钮, 停止运行。 帐号6位 MaxLength为6, Lostfocus判断数字 Numeric函数 分析 密码 PassWord Char-为“*”MgD函数设置密码错对话框 密码 区 输入密码 123456 密码错误 密码 火火火火 重试( 取消 确定
例3.2 编一帐号和密码检验程序。 要求: 帐号不超过6位数字,有错,清除原内容再输入. 密码输入时在屏幕上以 “*”代替; 若密码错,显示有关信息, 选择“重试”按钮,清除原内容再输入,选择“取消”按钮, 停止运行。 分析: 帐号6位,MaxLength为6 , LostFocus判断数字IsNumeric函数 密码PassWordChar为“*” ,MsgBox函数设置密码错对话框
常见错误 数据合法性检查中引起程序的死循环 Private Sub Text1 LostFocus( Private Sub Text2 LostFocusO If Not IsNumeric(Text1)Then If Not IsNumeric(Text2y Then Text1 II lI Text2= Text 1, setFocus Text1. setfocus End if 1: End If End sub Text 1 Text2 End sub 确定 If Text2<>And Not IsNumeric(Text2
常见错误 数据合法性检查中引起程序的死循环 Private Sub Text1_LostFocus() If Not IsNumeric(Text1) Then Text1 = "" Text1.SetFocus End If End Sub Private Sub Text2_LostFocus() If Not IsNumeric(Text2) Then Text2 = "" Text1.SetFocus End If End Sub If Text2 <> "" And Not IsNumeric(Text2) Text1 Text1 Text2 确定
选择结构 1..Then语句单分支结构 F 表达式 HfThen T 语句块 语句块 End旰f 或Then 例:已知两个数x和y,比较它们的大小, 图1-3-7单分支结构 使得X大于y If x<y Then t=x x-y 或 f x<y Then t=x:x=y:y=t”2mm top y End If 图1-3-8两个数交换 重要的是学会两个数的交换,若上述语句次序变一下,结果如何?
三.选择结构 1. If…Then语句(单分支结构) If Then 语句块 End If 或 If Then 例:已知两个数x和y,比较它们的大小, 使得x大于y. If x<y Then t=x x=y y=t End If 或 If x<y Then t=x: x=y: y=t 重要的是学会两个数的交换,若上述语句次序变一下,结果如何? 表达式 语句块 T F 图1-3-7 单分支结构 t x y 图 1-3-8 两个数交换 过程
2.If.Then.E|le语句(双分支结构) T fThen 表达式 下语句块 语句块 语句块 Else End If 图1-3-9双分支结构 fThenEse0 Then y=sin(x+sqrt(x x+1) 双分支结构实现:fx<>0Then M7 y=sin(x)+sqrt(x*x+1) Elsea y=cos(x)-x23+3*x409 End旰f
2. If…Then…Else语句(双分支结构) If Then Else End If If Then Else 计算分段函数 表达式 F 图 1-3-9 双分支结构 语句块 1 T 语句块 2 y x x x x x x x = + + − + = sin cos 2 3 1 0 3 0 单分支结构实现: 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
3.I..Then..Else语句(多分支结构) 形式: Hf 表太式n T [Else. noy 语句块 语句块2 语句块n谧呋n+1 语句块n+1] End if 图1-3-10多分支结构 不管有几个分支,依次判断,当某条件满足,执行相应的语句块 其余分支不再执行;若条件都不满足,且有Else子句,则执行该 语句块,否则什么也不执行。. Elself不能写成Esef
3. If…Then…ElseIf语句(多分支结构) 形式: If Then ElseIf Then … [Else 语句块n+1 ] End If 不管有几个分支,依次判断,当某条件满足,执行相应的语句块, 其余分支不再执行;若条件都不满足,且有Else子句,则执行该 语句块,否则什么也不执行。. ElseIf不能写成 Else If。 表达式 1 表达式 2 表达式n T F T F 图 1-3-10 多分支结构 语句块 1 语句块 2 语句块 n 语句块n+1 F … T
例已知百分制成绩m水,显示对应的五级制成绒 哪些正确,哪些错误 方法一 方法三 If mark >=90 Then If mark 60 Then If mark >=60 Then Print"优 Print"不及格 Print"及格 Elself mark >=80 Then Elself mark=70Then Elself mark >=70 Then Elself mark =80 Then nio/il Print"良 Print"及格 Print"中" Pint"中" Print"中 Print"良" Elself mark >=60 Then Elself mark 90 Then Elself mark >=90 Then Print"及格" Print"良" Print"优" Else Else Else Print"不及格 Print"优 Print"不及格 End if End if End If
例 已知百分制成绩mark,显示对应的五级制成绩 哪些正确,哪些错误? 方法一 If mark >= 90 Then Print "优" ElseIf mark >= 80 Then Print "良" ElseIf mark >= 70 Then Print "中" ElseIf mark >= 60 Then Print "及格" Else Print "不及格" End If 方法二 If mark = 60 Then Print "及格" ElseIf mark >= 70 Then Print "中" ElseIf mark >= 80 Then Print "良" ElseIf mark >= 90 Then Print "优" Else Print "不及格" End If