常见错误 数据合法性检查中引起程序的死循环 Private Sub Text1 LostFocus() Private Sub Text2 LostFocus() If Not IsNumeric(Text1)Then If Not IsNumeric(Text?)Then Textl Text2 Text1.SetFocus Text1.SetFocus End If End If End Sub Text1 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.If.Then语句(单分支结构) 表达式 f<表达式>Then ↓T 语句块 语句块 End If 或f<表达式>Then<语句> 例:已知两个数x和y,比较它们的大小, 图1-37单分支结构 使得x大于y: If x<y Then t=x X=Y y=t End If If x<y Then t=x:x=y:y=t 图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.Else语句(双分支结构) If<表达式>Then 表达式 <语句块1> 语句块1 语句块2 Else <语句块2> End If 图1-3-9双分支结构 If<表达式>Then<语句1>Ese<语句2> 计算分段函数 sinx+x2+1 x≠0 y= coSx-x3+3x x=0 单分支结构实现: y=c0sX)一xA3+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=CosX)一xA3+3*x End If
2. If.Then.Else语句(双分支结构) If <表达式> Then <语句块1> Else <语句块2> End If If <表达式> Then <语句1> Else <语句2> 计算分段函数 表达式 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.If.Then.Elselfi语句(多分支结构) 形式: If<表达式1>Then <语句块1><表达式) Elself<表达式2>Then 表达式2 <语句块2> 表拭n [Else 语句块1 语句块2 语句块n 语句块n+1 语句块n+1] End If 图1-3-10多分支结构 不管有几个分支,依次判断,当某条件满足,执行相应的语句块, 其余分支不再执行;若条件都不满足,且有se子句,则执行该 语句块,否则什么也不执行。· Elself不能写成Else If
3. If.Then.ElseIf语句(多分支结构) 形式: If <表达式1> Then <语句块1> ElseIf <表达式2>Then <语句块2> . [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
例已知百分制成绩mark,显示对应的五级制成绩 哪些正确,哪些错误? 方法一 方法二 方法三 If mark >=90 Then If mark 60 Then If mark >=60 Then Print"优" Print"不及格" Print"及格" Elself mark >=80 Then Elself mark 70 Then Elself mark >70 Then Print"良" Print"及格" Print"中" Elself mark >70 Then Elself mark 80 Then Elself mark >=80 Then Print"中" 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 方法三 If mark >= 60 Then Print "及格" ElseIf mark >= 70 Then Print "中" ElseIf mark >= 80 Then Print "良" ElseIf mark >= 90 Then Print "优" Else Print "不及格" End If