第3章选择结构程序设计ppt课件.ppt
第3章 选择结构程序设计第3章 选择结构程序设计目录目录3.1 IF语句语句3.2 多项选择语句多项选择语句3.3 条件函数条件函数3.4 图片控件图片控件3.5 滚动条应用滚动条应用 单分支结构单分支结构 If-ThenIf-Then语句语句 格式格式1: If Then If x=60 and x100 then msgbox(“你的成绩合格你的成绩合格”) 3.1 if 语句格式格式2: If Then End if If x=60 and xbab)。)。 Dim a, b, t As Integer a =val( InputBox(请输入请输入a的值:的值:, 比较大小比较大小) b =val(InputBox(请输入请输入b的值:的值:, 比较大小比较大小) If a b Then t = a a和和b中的数据互换中的数据互换 a = b b = t End If TextBox1.Text = str(a) TextBox2.Text = str(b)例例3-2 3-2 用用单行单行IfIf语句实现例语句实现例3-13-1。 Dim a, b, t As Integer a = val(InputBox(“请输入请输入a的值:的值:”, “比较大小比较大小”) b = val(InputBox(请输入请输入b的值:的值:, 比较大小比较大小) If a b Then t = a : a = b : b = t TextBox1.Text = a.tostring TextBox2.Text = b.tostring例题例题3-2b3-2b:输入三个整数,按从大到小的顺序排序输入三个整数,按从大到小的顺序排序 Dim a, b, c, t As Integer a = Val(InputBox(input a) b = Val(InputBox(input b) c = Val(InputBox(input c) If a b Then t = a : a = b : b = t If a c Then t = a : a = c : c = t If b + Str(b) + + Str(c) 双分支结构双分支结构 If-Then-Else If-Then-Else 语句语句格式:格式:If 条件为真条件为真 Then 语句块语句块1Else 语句块语句块2End If 表达式表达式语句块语句块1语句块语句块2 YN例例3-33-3求一元二次方程求一元二次方程ax2+bx+c=0ax2+bx+c=0的实根(不考虑虚根)。的实根(不考虑虚根)。说明:在输入说明:在输入a, b, ca, b, c时,确保时,确保b b* *b-4b-4* *a a* *c0c0;否则,出错。;否则,出错。 Dim a, b, c, delt, x1, x2 As Double a = val(TextBox1.Text) b = val(TextBox2.Text) c = val(TextBox3.Text) delt = b * b - 4 * a * c If delt 0 Then x1 = (-b + Sqrt(delt) / (2 * a) x2 = (-b - Sqrt(delt) / (2 * a) Else x1 = -b / (2 * a) x2 = x1 End If TextBox4.Text = Format(x1, “0.000) TextBox5.Text = Format(x2, “0.000)例题例题3-4 3-4 利用文本框输入一个数,判断这个数是否利用文本框输入一个数,判断这个数是否能被能被3 3和和7 7同时整除,并给出相应的提示信息。同时整除,并给出相应的提示信息。 Dim x As Integer x=val(TextBox1.Text) If x mod 3=0 And x mod 7=0 Then MsgBox(Str(x) & 能被能被3和和7同时整除同时整除) Else MsgBox(Str(x) & 不能被不能被3和和7同时整除同时整除) End If习题习题3-93-9 编写程序,判断某一年份(编写程序,判断某一年份(yearyear)是否为闰年。)是否为闰年。分析:判断闰年条件是:能被分析:判断闰年条件是:能被4 4整除但不能被整除但不能被100100整除的年份;整除的年份; 或者能被或者能被400400整除的年整除的年份。份。 If (year Mod 4 = 0 And year Mod 100 0) Or (year Mod 400 = 0) Then MsgBox(str(year) &是闰年是闰年!, , 判断闰年判断闰年) Else MsgBox(str(year) &不是闰年不是闰年!, , 判断闰年判断闰年)End If 多分支结构多分支结构 If-Then-Elseif- If-Then-Elseif- 语句语句格式:格式:If 条件条件1 Then 语句块语句块1ElseIf 条件条件2 Then 语句块语句块2Else 语句块语句块n+1End If 表达式1 YN表达式2表达式n语句块1语句块2语句块n语句块n+1NN Y Y多分支结构:多分支结构: if x100 then msgbox(“输入分数有错输入分数有错”) elseif x=0 and x=60 and x85 then Msgbox(“成绩为合格成绩为合格”) else Msgbox(“成绩为优秀成绩为优秀”) End if 01006085实例:实例:20192019个人所得税计算公式个人所得税计算公式 要求要求:输入工资输入工资,计算并输出缴税和实发工资计算并输出缴税和实发工资. 5000, 8000,12000,25000 ,35000 ,55000 ,80000 按按45%征税征税 If gz5000 and gz8000 and gz12000 and gz25000 and gz35000 and gz55000 and gz=80000 then Sf=3000*0.03+4000*0.1+13000*0.2+10000*0.25+20000*0.3+(gz-55000)*0.35 else Sf=3000*0.03+4000*0.1+13000*0.2+10000*0.25+20000*0.3+35000*0.35+(gz-80000)*0.45 Endif Select Case Case 表达式表列表达式表列1 语句块语句块1 Case 表达式表列表达式表列2 语句块语句块2 Case Else 语句块语句块n End Select 3.2 多向选择语句说明:(1)“变量或表达式”只能是数值表达式或字符串表达式(2)“表达式列表i”与“变量或表达式”的类型必须相同。(3)表达式列表中有多个值,就用逗号把值隔开。 Case 2,4,6,8Case a,love,thenCase 1 to 10 Case a to z Case 2,4,6,8,is=60 is 表达式Case IsThis(4)Case Else子句可以省略。如果Case后的“变量或表达式”的结果与“表达式列表i”中多个列表的值相匹配,则根据自上而下的原则,只执行与之匹配的第一个Case子句后的语句块。例题3-9 计算机等级考试成绩评定If IsNumeric(TextBox1.Text) Then Select Case CDbl(TextBox1.Text) Case Is100 MsgBox(成绩不合理,请重新输入成绩不合理,请重新输入) Case Is=90 Label3.Text=优秀优秀A Case 80 To 89 Label3.Text=良好良好B Case 70 To 79 Label3.Text=中等中等C Case 60 To 69 Label3.Text=及格及格D Case Is b, a, b) 该语句可以挑选出该语句可以挑选出a、b中较大的并赋值给中较大的并赋值给Max1。3.3 3.3 条件函数条件函数 2Choose( )函数函数Choose( )函数的语法形式如下:函数的语法形式如下:Choose(整数表达式,选项列表)(整数表达式,选项列表)Choose( )函数的功能:函数的功能:根据整数表达式的值来决定返回选项列表中的某个值。如果整数表达式值是根据整数表达式的值来决定返回选项列表中的某个值。如果整数表达式值是1,则,则Choose( )会返回列表中的第会返回列表中的第1个选项;如果整数表达式值是个选项;如果整数表达式值是2,则,则Choose( )会返回列表中的会返回列表中的第第2个选项;依此类推。若整数表达式的值小于或大于列出的选项数目,个选项;依此类推。若整数表达式的值小于或大于列出的选项数目,Choose( )返回返回Null。例如:如下程序段的功能是随机生成一个运算符并将其送给例如:如下程序段的功能是随机生成一个运算符并将其送给op,使用,使用Choose( )函数来完成。函数来完成。Dim a As IntegerDim op As Stringa=Int(Rnd()*4+1)op=Choose(a, +, -, , )MsgBox(op)当当a的值为的值为1时,时,Choose返回字符串返回字符串“+”,并放入,并放入op变量中;当变量中;当a的值为的值为2时,返回字符串时,返回字符串“-”,并放,并放入入op变量中;依此类推。当变量中;依此类推。当a值小于值小于1或大于或大于4时,返回时,返回Null值。值。3.4 3.4 图片控件图片控件-图片轮播器设计图片轮播器设计把所有图片放入debug文件夹中binDebug1.jpg Private Sub Timer1_Tick( (ByVal sender As System. .Object, , ByVal e As System. .EventArgs) ) Handles Timer1. .Tick Dim m As Integer m = = Int( (Rnd() () * * 4 + + 1) ) Select Case m Case 1 PictureBox1. .Image = = Image. .FromFile( (1.jpg) ) Label1. .Text = = 校训 Case 2 PictureBox1. .Image = = Image. .FromFile( (2.jpg) ) Label1. .Text = = 图书馆 Case 3 PictureBox1. .Image = = Image. .FromFile( (3.jpg) ) Label1. .Text = = 运动场 Case 4 PictureBox1. .Image = = Image. .FromFile( (4.jpg) ) Label1. .Text = = 教学楼 End Select End Sub3.5 滚动条的应用:滚动条的应用:在窗体上添加3个标签 label13;1个水平滚动条hscrollbar1;3个分组框groupbox13;6个单选按钮radiobutton16;3个多选框checkbox1310301030Public Class Form1 Dim labelstyle As FontStyle Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged Label1.ForeColor = Color.Red End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged Label1.ForeColor = Color.Green End Sub Private Sub RadioButton3_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged Label1.ForeColor = Color.Blue End Sub Private Sub RadioButton4_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged Label1.Font = New Font(Label1.Font.FontFamily, 10) End Sub Private Sub RadioButton5_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton5.CheckedChanged Label1.Font = New Font(Label1.Font.FontFamily, 20) End Sub Private Sub RadioButton6_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton6.CheckedChanged Label1.Font = New Font(Label1.Font.FontFamily, 30) End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged labelstyle = labelstyle Xor FontStyle.Italic Label1.Font = New Font(Label1.Font, labelstyle) End Sub Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged labelstyle = labelstyle Xor FontStyle.Bold Label1.Font = New Font(Label1.Font, labelstyle) End Sub Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged labelstyle = labelstyle Xor FontStyle.Underline Label1.Font = New Font(Label1.Font, labelstyle) End Sub Private Sub HScrollBar1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles HScrollBar1.Scroll Label1.Font = New Font(Label1.Font.FontFamily, HScrollBar1.Value) End SubEnd Class实验实验03 - 03 - 选择结构选择结构 1. 输入三个整数,按从小到大的顺序排序输出。输入三个整数,按从小到大的顺序排序输出。 2. 编写程序,判断某一年份是否为闰年。编写程序,判断某一年份是否为闰年。 3. 阶梯水价收费计算器设计阶梯水价收费计算器设计 某市居民年度用水阶梯水价,具体为年用水量某市居民年度用水阶梯水价,具体为年用水量: 1=x=180 按按 5.4元元/立方米;立方米; 181x300 按按 10.8元元/立方米立方米 4. 教材教材 习题习题3-5