1、1,第五讲 程序控制结构,教学目标:掌握选择控制结构(If语句),循环控件语句(For语句,do whileLoop语句。,2,5.1选择控件结构,5.1.1单行结构条件语句 (1)格式 If 条件 Then Then部分 else else部分 (2)功能 如果 “条件”为 True 则执行 “then部分” 否则 执行“else部分”,If x10 then x=x-1 else x=x*2,5.1.1单行结构条件语句 (3)Then部分和else部分语句可以由多个语句构成,多语句间要用冒号隔开,也可含If语句。,5.1选择控件结构,If x60 then print “合格”: y=x*
2、2: print y else print “不合格”,If x60 then if x70 then print “合格” else print”良好” else print “不合格” print “XY”,5.1.1单行结构条件语句 (4)当else省略时,if语句简化为:If 条件 Then Then部分 功能:条件成立执行Then部分 条件无论是否为True还是为False都会执行下一条语句。,5.1选择控件结构,if X=90 then print “X=90” print “X90”,5.1.2 块结构条件语句 (1) 一般格式 If 条件1 Then语句块1 ElseIf 条件
3、2 Then语句2 ElseIf 条件3 Then语句3 Else语句n End if,5.1选择控件结构,5.1.2 块结构条件语句 (2) 功能及执行顺序:“条件1”为True 则执行”语句块1” ;否则如果“条件2” 为True则执行“语句块2”;否则执行“语句块n”,执行完某“语句块”后,跳出IF结构执行Endif后的语句。 (3) “语句块”也可以是多个语句。 如:,5.1选择控件结构,If (x0) and (yD) thenAmount=(X+Y+D*2)/2Try.text=str$(Amount) End If,5.1.2 块结构条件语句 (4)在“块结构”中,ElseIf子
4、句和Else子句都是可选的,如果省略这些子句则变为: If 条件 Then语句块 End if,5.1选择控件结构,If C0 Thentext1.text=”Good morning” End If,5.1.2 块结构条件语句 (5)若有多个条件为True 则执行第一个为True后面的语句。,5.1选择控件结构,Private Sub Form_Load()Dim ch As Stringch = InputBox$(“请输入对话框“, “检查框“)If Len(ch) 6 ThenText1.Text = “字符个数小于6“ElseIf “a“=Left(ch, 1) ThenText1.
5、Text = “首字符不能为a“ElseText1.Text = “你全错了“End If End Sub,当输入“abc”则输出“字符个数小于6”,9,例5.1.1,在文件夹(例5.1.1)下有一个工程文件sjt3.vbp,其窗体中有一个红色方框和一个计时器控件。程序运行时每隔半秒,方框的颜色交替变为黄色和红色(黄色值为&HFFFF&;红色值为&HFF&);若单击鼠标右键,则停止变色;若单击鼠标左键,则方框左上角移到鼠标点击的位置处(如图所示)。请填加相应的事件过程,以实现上述程序功能。,10,例5.1.1-Form_Load事件,Private Sub Form_Load()Timer1.
6、Enabled = TrueTimer1.Interval = 500 End Sub,11,例5.1.1- Timer1_Timer事件,Private Sub Timer1_Timer()If Shape1.BackColor = &HFF& ThenShape1.BackColor = &HFFFF&ElseShape1.BackColor = &HFF&End If End Sub,12,例5.1.1- Timer1_Timer事件,Private Sub Timer1_Timer()If Shape1.BackColor = &HFF& ThenShape1.BackColor =
7、&HFFFF&ElseShape1.BackColor = &HFF&End If End Sub,Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 1 ThenShape1.Left = XShape1.Top = YEnd IfIf Button = 2 ThenTimer1.Enabled = FalseEnd If End Sub,14,例5.1.2,15,例5.1.2- Cmd1_Click事件,Private Sub Cmd1_Cl
8、ick()Text1(0) = Str(Time()Text1(1).Text = “: Text1(2).Text = “Cmd1.Enabled = FalseCmd2.Enabled = True End Sub,16,例5.1.2- Cmd2_Click事件,Private Sub Cmd2_Click()Text1(1).Text = Str(Time()t_start = Hour(Text1(0).Text) * 3600 + Minute(Text1(0).Text) * 60 + Second(Text1(0).Text)t_end = Hour(Text1(1).Text) * 3600 + Minute(Text1(1).Text) * 60 + Second(Text1(1).Text)t = t_end - t_startm = t 60If m 0 Thens = ? + (m - 3) * 0.15End IfText1(2).Text = Str(s) + “元“?= True?= False End Sub,