1、程序结构,西南交通大学峨眉校区,一、结构化程序的结构,结构化程序设计核心,即三种基本的控制结构 顺序结构 分支结构 循环结构流程图 程序执行的过程叫流程。 圆角矩形表示开始和结束 矩形表示某种处理 菱形表示条件判断 线条和箭头表示程序流程的方向,结构中的每个语句都按照顺序执行。,顺序结构流程图,1、顺序结构,也叫选择结构,根据给出的条件,决定流程的走向。 有三种语句结构:单分支、双分支、多分支,单分支语句的流程图,双分支语句的流程图,2、分支结构,多分支语句的流程图,当型循环语句的流程图,直到型循环语句的流程图,3、循环结构,循环就是指在一定的条件下,重复执行一组语句,直至条件不满足为止。 分
2、为两种循环:当型循环、直到型循环,当条件第一次就不满足的时候,二者的结果不一样。,1、IF条件判断语句(三种格式),IF 条件 Then语句块 End If,IF 条件 Then语句块1 Else语句块2 End If,IF 条件1 Then语句块1 Elseif 条件2 Then语句块2 Elseif 条件3 Then Else语句块n End If,IF 条件 Then 语句块1 else 语句块2,单行书写形式:没有End if,二、分支结构IF语句,2、IF条件语句说明 条件一般是关系或逻辑表达式。如果条件用数值表达式表示,则0表示False,所有非0的值都表示True。 单行IF结构
3、没有End If。 多分支IF语句中,Elseif可以有任意多个。 当If结构内有多个条件为True时,VB只执行第一个为True的条件后面的语句块。 条件语句可以嵌套。即把一个If Then Else 块放在另一个 If Then Else 块内。,3、双分支程序示例,If a b Thenmax = a Elsemax = b End If,If a b Then max = a Else max = b,求a,b中的较大数,单行书写,If score 60 Thenprint “过” Elseprint “不过” End If,将百分制转换成两级制,单行书写,请回答,执行简单的条件判断操
4、作,是If-Then-Else结构的简写。格式:结果=IIf(条件,True表达式,False表达式) 含义:当条件为True时,返回True表达式的值,当条件为False时,返回 False表达式的值。比如:,IIF函数,If a b Thenmax = a Elsemax = b End If,max = IIf(a b, a, b),等价于,4、多分支程序示例,If score = 90 ThenPrint “优“ ElseIf score = 80 ThenPrint “良“ ElseIf score = 60 ThenPrint “及格“ ElsePrint “不及格“ End If
5、,将百分制转换为等级制,If score = 60 ThenPrint “及格“ ElseIf score = 80 ThenPrint “良“ ElseIf score = 90 ThenPrint “优“ ElsePrint “不及格“ End If,思考:下面形式是否正确?,If x = 1 And x = 2 Theny = (1 - x) * (2 - x)Elsey = -(2 - x)End If,y =,根据下列公式求函数,1、Select Case条件分支语句格式,Select Case 变量或表达式Case 条件值1语句块1Case 条件值2语句块2 Case 条件值n语句
6、块nCase Else语句块n+1 End Select,二、分支结构Select语句,设计程序,输入班级所有学生的成绩,统计各个等级的人数并输出。,Private Sub cmdNext_Click()Select Case Val(txtScore)Case Is = 90Text1.Text = Val(Text1.Text) + 1Case 80 To 90Text2.Text = Val(Text2.Text) + 1Case 70 To 80Text3.Text = Val(Text3.Text) + 1Case 60 To 70Text4.Text = Val(Text4.Tex
7、t) + 1Case ElseText5.Text = Val(Text5.Text) + 1End SelectText6.Text = Val(Text6.Text) + 1txtScore.Text = “txtScore.SetFocus End Sub,2、Select Case语句程序举例,制作演示,3、Select Case语句说明语句中的“条件值”可以是以下形式之一 表达式 , 表达式 例如:Case 2,4,6,8 表达式 To表达式 例如:Case 1 To 5注意:只能 “小 to 大” Is关系运算表达式 例如:Case Is5 And Is10 是不合法的。 以上3种
8、形式可以混用 例如:Case Is5,8,9,20 to 30 如果同一个范围在多个Case子句中出现,则只执行符号要求的第一个Case子句的语句块。 Case Else子句必须放在所有的Case子句之后。,练习:,1.求闰年(能被4整除,不能被100整除的年,或者是能够被400整除的年是闰年。)(用if双分支语句做),Year=val(text1.text) If year mod 4 =0 and year mod 100 0 or year mod 400 =0 thenMsgbox (“是闰年!”) ElseMsgBox (“这不是闰年!”) End If,2.设计一个程序,输入190
9、0年以后的任意一个年份,计算该年的生肖。 (用select case语句做),3.大学录取新生时,根据学生总分情况给与奖励,条件如下: (1)四门总分不低于700分,特等奖。 (2)四门总分680分(含680分)700分(不含700分),优秀奖。 (3)前三门单科不低于145分,第四门不低于280分),特别奖。 (4)奖励按特等奖、优秀奖、特别奖由高到低,不重复计奖(包括单科)。 要求:四科成绩(s1、s2、s3、s4)依次在四个文本框中输入,总分(sum)在标签控件上显示。单击命令按钮Command1后,在对话框中显示获奖情况。(用if双分支语句做),Private Sub Command1
10、_Click()Dim sum As Integer, s1 As IntegerDim s2 As Integer, s3 As Integer, s4 As Integers1 = val(Text1.Text)s2 = val(Text2.Text)s3 = val(Text3.Text)s4 = val(Text4.Text)sum = s1 + s2 + s3 + s4Label3.Caption = sumIf sum = 700 ThenMsgBox “您获得了特等奖”, 64, “获奖通知”ElseIf sum = 680 ThenMsgBox “您获得了优秀奖”, 64, “
11、获奖通知”ElseIf s1 = 145 Or s2 = 145 Or s3 = 145 Or s4 = 280 ThenMsgBox “您获得了特别奖”, 64, “获奖通知”ElseMsgBox “很遗憾,您没有获奖”, 64, “获奖通知”End If End Sub,上面学习了If语句的基本形式,可以通过这些基本形式加以复合,获得更为复杂的If结构,称为If语句的嵌套。,If语句复合结构的一般形式,在Else块中嵌套If结构的形式,if语句的嵌套,例:求a、b、c中三个实数的最大值、最小值。a、b、c三值从三个文本框中输入,当单击命令按钮时将结果 显示在窗体上,例:求a、b、c中三个实数的最大值、最小值。a、b、c三值从三个文本框中输入,当单击命令按钮时将结果 显示在窗体上。,Maxinabc=c,Maxabc =c Minabc =a,False,True,Minabc =a,Minabc =c,Maxabc =c Minabc =b,True,False,Minabc =b,False,True,Minabc =c,False,