1、 3.33.3 暂停与程序结束暂停与程序结束 VB.NET语言的语句按功能可以分成语言的语句按功能可以分成3类:声明语句、类:声明语句、操作语句和控制语句。操作语句和控制语句。声明语句用于定义变量、常量声明语句用于定义变量、常量、过程过程、数据类型等。数据类型等。操作语句用于描述对数据的处理。操作语句用于描述对数据的处理。例如例如:赋值语句可以将数据值赋予变量赋值语句可以将数据值赋予变量;输入输入/输出语句用于对数据的输入输出输出语句用于对数据的输入输出;控制语句用于控制程序的执行流程。控制语句用于控制程序的执行流程。程序的流程控制包含程序的流程控制包含顺序结构顺序结构、分支结构分支结构和和循
2、环结循环结构构3种基本结构。种基本结构。在第在第7章中介绍的章中介绍的Windows应用程序中增加了事件应用程序中增加了事件驱动机制,可以由用户激发某个事件去执行相应的事件驱动机制,可以由用户激发某个事件去执行相应的事件处理过程。处理过程。虽然事件处理过程之间并不形成特定的执行次序,虽然事件处理过程之间并不形成特定的执行次序,但在每个事件处理过程的内部,又总是包含上述三种基但在每个事件处理过程的内部,又总是包含上述三种基本结构。本结构。事件处理过程内部的语句流程是由程序员编写代码事件处理过程内部的语句流程是由程序员编写代码时控制的。时控制的。本章主要介绍本章主要介绍VB.NET VB.NET
3、分支结构和分支结构和结构程序设结构程序设计的相关语句。计的相关语句。3.1.13.1.1 单行结构条件语句单行结构条件语句 3.1.33.1.3 GoTo GoTo语句语句3.1.23.1.2 块结构条件语句块结构条件语句 3.1.43.1.4 情况语句情况语句00 xxxxx3.1 3.1 分支结构分支结构 当当或或中又包含条件语句时,称之为中又包含条件语句时,称之为条条件语句的嵌套件语句的嵌套;嵌套深度(层数)没有限制。;嵌套深度(层数)没有限制。但单行结构条件语句嵌套深度会受逻辑行长度的制约。但单行结构条件语句嵌套深度会受逻辑行长度的制约。3.13.1.1.1 单行结构条件语句单行结构条
4、件语句 无可选项时,语句的无可选项时,语句的格式格式为:为:If Then 功能:功能:如果如果为为True,则执行,则执行;否则,;否则,执行下一行语句。执行下一行语句。条件条件FalseTrue下一行语句下一行语句语句语句 无可选项时,语句的无可选项时,语句的格式格式为:为:If Then 功能:功能:如果如果为为True,则执行,则执行;否则,;否则,执行下一行语句。执行下一行语句。条件条件FalseTrue下一行语句下一行语句语句语句 无可选项时,语句的无可选项时,语句的格式格式为:为:If Then 功能:功能:如果如果为为True,则执行,则执行;否则,;否则,执行下一行语句。执行
5、下一行语句。条件条件FalseTrue下一行语句下一行语句语句语句 无可选项时,语句的无可选项时,语句的格式格式为:为:If Then 功能:功能:如果如果为为True,则执行,则执行;否则,;否则,执行下一行语句。执行下一行语句。条件条件FalseTrue下一行语句下一行语句语句语句 无可选项时,语句的无可选项时,语句的格式格式为:为:If Then 功能:功能:如果如果为为True,则执行,则执行;否则,;否则,执行下一行语句。执行下一行语句。条件条件FalseTrue下一行语句下一行语句语句语句 无可选项时,语句的无可选项时,语句的格式格式为:为:If Then 功能:功能:如果如果为为
6、True,则执行,则执行;否则,;否则,执行下一行语句。执行下一行语句。条件条件FalseTrue下一行语句下一行语句语句语句 无可选项时,语句的无可选项时,语句的格式格式为:为:If Then 功能:功能:如果如果为为True,则执行,则执行;否则,;否则,执行下一行语句。执行下一行语句。条件条件FalseTrue下一行语句下一行语句语句语句 无可选项时,语句的无可选项时,语句的格式格式为:为:If Then 功能:功能:如果如果为为True,则执行,则执行;否则,;否则,执行下一行语句。执行下一行语句。条件条件FalseTrue下一行语句下一行语句语句语句 无可选项时,语句的无可选项时,语
7、句的格式格式为:为:If Then 功能:功能:如果如果为为True,则执行,则执行;否则,;否则,执行下一行语句。执行下一行语句。条件条件FalseTrue下一行语句下一行语句语句语句 有可选项时,语句的功能是:若有可选项时,语句的功能是:若为为True,则执行则执行;否则,执行;否则,执行。条件条件False下一行语句下一行语句语句语句_1True 有可选项时,语句的功能是:若有可选项时,语句的功能是:若为为True,则执行则执行;否则,执行;否则,执行。条件条件False下一行语句下一行语句语句语句_1True 有可选项时,语句的功能是:若有可选项时,语句的功能是:若为为True,则执行
8、则执行;否则,执行;否则,执行。条件条件False下一行语句下一行语句语句语句_1True 有可选项时,语句的功能是:若有可选项时,语句的功能是:若为为True,则执行则执行;否则,执行;否则,执行。条件条件False下一行语句下一行语句语句语句_1True 有可选项时,语句的功能是:若有可选项时,语句的功能是:若为为True,则执行则执行;否则,执行;否则,执行。条件条件False下一行语句下一行语句语句语句_1True 有可选项时,语句的功能是:若有可选项时,语句的功能是:若为为True,则执行则执行;否则,执行;否则,执行。条件条件False下一行语句下一行语句语句语句_1True 有可
9、选项时,语句的功能是:若有可选项时,语句的功能是:若为为True,则执行则执行;否则,执行;否则,执行。条件条件False下一行语句下一行语句语句语句_1True 有可选项时,语句的功能是:若有可选项时,语句的功能是:若为为True,则执行则执行;否则,执行;否则,执行。条件条件False下一行语句下一行语句语句语句_1True 有可选项时,语句的功能是:若有可选项时,语句的功能是:若为为True,则执行则执行;否则,执行;否则,执行。条件条件False下一行语句下一行语句语句语句_1True 有可选项时,语句的功能是:若有可选项时,语句的功能是:若为为True,则执行则执行;否则,执行;否则
10、,执行。条件条件False下一行语句下一行语句语句语句_1True输入三个数输入三个数a,b,c,输出三者之中的最大者。,输出三者之中的最大者。例例3-1ReadLineReadLineWriteLineWriteLine开始开始输入输入a,b,cmax=a11bmaxmax=bcmaxmax=c输出输出max结束结束FalseTrueFalseTrue求三个数最大值算法求三个数最大值算法Imports System.ConsoleModule Module1 Sub Main()Dim a!,b!,c!,max!Write(请输入第请输入第 1 个数:个数:)a=Val(ReadLine()
11、Write(请输入第请输入第 2 个数:个数:)b=Val(ReadLine()Write(请输入第请输入第 3 个数:个数:)c=Val(ReadLine()max=a 设设a为最大值为最大值 比较后保留最大值比较后保留最大值 If b max Then max=b If c max Then max=c WriteLine(0、1与与2之中最大值是:之中最大值是:3,a,b,c,max)End SubEnd Module 分析:分析:当当a0时,时,x=b/a;当;当a=0,b0时,方程无解。时,方程无解。因为用因为用0作除数会产生溢出的运行错误,所以在计算作除数会产生溢出的运行错误,所以
12、在计算x的的值之前,要先判断值之前,要先判断a是否为是否为0。例例3-2输入系数输入系数a和和b,编程序解方程,编程序解方程ax+b=0。算法设计算法设计开始开始输入系数输入系数a,ba0输出输出“方程无解方程无解”信息信息求方程的根求方程的根结束结束TrueFalseImports System.ConsoleModule Module1 Sub Main()Dim a!,b!,x!Write(请输入系数请输入系数a:)a=Val(ReadLine()Write(请输入系数请输入系数b:)b=Val(ReadLine()If a 0 Then x=-b/a:WriteLine(x=0,x)E
13、lse _ WriteLine(方程无解!方程无解!)End SubEnd Module其中其中,一般为关系表达式或逻辑表达式一般为关系表达式或逻辑表达式。,为一个语句或多个语句为一个语句或多个语句。一行可以写一个语句,也可以一行可以写一个语句,也可以写多个语句,但多个语句要用冒号写多个语句,但多个语句要用冒号分隔。分隔。不能把语句写在不能把语句写在Then或或Else后面。后面。又如又如:If(x 0)And(y 0)And(y z)Then amount=(x+y+z*2)/2 WriteLine(“amount=0,amount)End If3.1.2 3.1.2 块结构条件语句块结构条
14、件语句功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrue
15、TrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2
16、条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行
17、情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一
18、个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定
19、的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse功能:功能:根据给定的条
20、件选择不同的语句执行。根据给定的条件选择不同的语句执行。下一个语句下一个语句执行情况:执行情况:条件条件_1条件条件_2条件条件_nFalseTrueTrueTrueFalseFalse 说明:说明:在在VB.NET中,数值表达式可以看成逻辑表达式的特例,中,数值表达式可以看成逻辑表达式的特例,非非0值表示值表示True,0值表示值表示False。即条件语句中的即条件语句中的不但可以是逻辑表达式或关系表达不但可以是逻辑表达式或关系表达式,还可以是数值表达式。式,还可以是数值表达式。例如:例如:If a+b Then WriteLine(true)Else WriteLine(false)End
21、 If 语句块中的语句块中的不能与其前面的不能与其前面的Then写在同一行写在同一行上,否则上,否则VB.NET认为是一个单行结构的条件语句。认为是一个单行结构的条件语句。对于块结构语句,必须以对于块结构语句,必须以End If结束,而单行结构不需结束,而单行结构不需要要End If。块结构条件语句中的块结构条件语句中的ElseIf子句数量没有限制,可以子句数量没有限制,可以根据需要加入任意多个。根据需要加入任意多个。例如:例如:If score=90 Then n1=n1+1 ElseIf score=80 Then n2=n2+1 ElseIf score=70 Then n3=n3+1
22、ElseIf score=60 Then n4=n4+1 Else n5=n5+1 End If 块结构条件语句块结构条件语句有两种常用形式。有两种常用形式。常用形式常用形式1:If Then End If 常用形式常用形式2:If Then Else End If 可见,块结构条件语句完全可以代替单行结构条件可见,块结构条件语句完全可以代替单行结构条件语句。语句。从键盘上输入三个数,若这三个数能构从键盘上输入三个数,若这三个数能构成三角形的三条边长,则求这个三角形的面成三角形的三条边长,则求这个三角形的面积;否则,打印相应的错误信息。积;否则,打印相应的错误信息。分析:分析:三个数能构成三角
23、形的三条边长的充分必要条件:三个数能构成三角形的三条边长的充分必要条件:1.三个数均大于三个数均大于0;2.任意两条边的和大于第三边。任意两条边的和大于第三边。例例3-3 如果这三条边能构成三角形,则求三角形的面积公式:如果这三条边能构成三角形,则求三角形的面积公式:)()(csbsassarea其中其中p=(a+b+c)/2Imports System.ConsoleImports System.MathModule Module1 Sub Main()Dim a As Single,b As Single,c As Single Dim p As Single,s As Single Wr
24、ite(请输入三角形的第一条边请输入三角形的第一条边:)a=Val(ReadLine()Write(请输入三角形的第二条边请输入三角形的第二条边:)b=Val(ReadLine()Write(请输入三角形的第三条边请输入三角形的第三条边:)c=Val(ReadLine()If a 0 And b 0 And c 0 Then If a+b c And b+c a And a+c b Then p=(a+b+c)/2 s=Sqrt(p*(p-a)*(p-b)*(p-c)WriteLine(三角形的三条边长为:三角形的三条边长为:0,1,2,a,b,c)WriteLine(三角形的面积为:三角形的
25、面积为:0,s)Else WriteLine(不能构成三角形!不能构成三角形!)End If Else WriteLine(数据无效!数据无效!)End If End SubEnd Module设计一个程序,从键盘输入学生分数,统计学设计一个程序,从键盘输入学生分数,统计学生总人数和各分数段人数,即优秀(生总人数和各分数段人数,即优秀(90-100分)、良分)、良好(好(80-89分)、中等(分)、中等(70-79分)、及格(分)、及格(60-69分)分)和不及格(和不及格(59分以下)的人数。分以下)的人数。例例3-4 算法:算法:输入分数输入分数;如果分数如果分数100,统计结束,统计结束
26、;统计总人数和各分数段人数统计总人数和各分数段人数;返回返回Imports System.ConsoleModule Module1 Sub Main()Dim score!Dim n1%,n2%,n3%,n4%,n5%,total%WriteLine(请输入分数:(-1 结束))WriteLine(输入数据:“)L1:score=Val(ReadLine()If score 100 Then GoTo L2 Else total=total+1 If score=90 Then n1=n1+1 ElseIf score=80 Then n2=n2+1 ElseIf score=70 Then
27、 n3=n3+1 ElseIf score=60 Then n4=n4+1 Else n5=n5+1 End If GoTo L1 End IfL2:WriteLine(总人数:0,total)WriteLine(优秀:0,n1)WriteLine(良好:0,n2)WriteLine(中等:0,n3)WriteLine(及格:0,n4)WriteLine(不及格:0,n5)End SubEnd ModuleL1:score=Val(ReadLine()If score 100 Then GoTo L2 Else total=total+1 If score=90 Then n1=n1+1 El
28、seIf score=80 Then n2=n2+1 ElseIf score=70 Then n3=n3+1 ElseIf score=60 Then n4=n4+1 Else n5=n5+1 End If GoTo L1 End IfL2:WriteLine(总人数:0,total)WriteLine(优秀:0,n1)WriteLine(良好:0,n2)WriteLine(中等:0,n3)WriteLine(及格:0,n4)WriteLine(不及格:0,n5)End SubEnd ModuleIf score=60 Then n4=n4+1ElseIf score=70 Then n3=
29、n3+1ElseIf score=80 Then n2=n2+1ElseIf score=90 Then n1=n1+1Else n5=n5+1End If对吗?为什么对吗?为什么?L1:score=Val(ReadLine()If score 100 Then GoTo L2 Else total=total+1 If score=90 Then n1=n1+1 ElseIf score=80 Then n2=n2+1 ElseIf score=70 Then n3=n3+1 ElseIf score=60 Then n4=n4+1 Else n5=n5+1 End If GoTo L1 E
30、nd IfL2:WriteLine(总人数:0,total)WriteLine(优秀:0,n1)WriteLine(良好:0,n2)WriteLine(中等:0,n3)WriteLine(及格:0,n4)WriteLine(不及格:0,n5)End SubEnd ModuleIf score=90 Then n1=n1+1If score=80 Then n2=n2+1If score=70 Then n3=n3+1If score=60 Then n4=n4+1If score 60 Then n5=n5+1对吗?为什么对吗?为什么?L1:score=Val(ReadLine()If sco
31、re 100 Then GoTo L2 Else total=total+1 If score=90 Then n1=n1+1 ElseIf score=80 Then n2=n2+1 ElseIf score=70 Then n3=n3+1 ElseIf score=60 Then n4=n4+1 Else n5=n5+1 End If End IfL2:WriteLine(总人数:0,total)WriteLine(优秀:0,n1)WriteLine(良好:0,n2)WriteLine(中等:0,n3)WriteLine(及格:0,n4)WriteLine(不及格:0,n5)End Sub
32、End ModuleIf score=90 Then n1=n1+1:GoTo L1If score=80 Then n2=n2+1:GoTo L1If score=70 Then n3=n3+1:GoTo L1If score=60 Then n4=n4+1:GoTo L1If score 60 Then n5=n5+1:GoTo L1对吗?为什么对吗?为什么?当条件语句所执行的语句里又包含条件语句时,称为当条件语句所执行的语句里又包含条件语句时,称为条条件语句的嵌套。件语句的嵌套。这时应注意各条件之间嵌套的逻辑关系。这时应注意各条件之间嵌套的逻辑关系。例如,以下单行结构条件语句:例如,以下
33、单行结构条件语句:If Then If Then Else 执行执行的条件的条件:=True And =True 而执行而执行的条件的条件:=True And =False。这是因为语言系统规定这是因为语言系统规定:Else总是与最靠近的总是与最靠近的Then配对。配对。如果希望执行如果希望执行的条件的条件:=False 则应该用块结构条件语句,写成:则应该用块结构条件语句,写成:If Then If Then Else End If或者:或者:If Then If Then End If Else End If 使用条件语句时,不但使用条件语句时,不但要注意条件之间的逻辑关系,要注意条件之间
34、的逻辑关系,也应养成良好的程序书写风也应养成良好的程序书写风格,使程序便于阅读,便于格,使程序便于阅读,便于查错。查错。WriteLine(3.1.3 GoTo3.1.3 GoTo语句语句WriteLine(WriteLine(WriteLine(例如,给定例如,给定x x的值,按下列分段表达式求的值,按下列分段表达式求y y的值的值3.1.4 3.1.4 情况语句情况语句Then Then 可见,使用情况语句简练和直观一些。可见,使用情况语句简练和直观一些。443322132xxxxxxxy 一般格式、功能和执行情况一般格式、功能和执行情况 Case Case Else 功能:功能:先计算测
35、试表达先计算测试表达式的值,若该值为表达式式的值,若该值为表达式1 1 中指定的值,就执行语句中指定的值,就执行语句块块1 1;若该值为表达式表若该值为表达式表2 2中中指定的值,就执行语句块指定的值,就执行语句块2 2,若该值为表达式若该值为表达式n n中指中指定的值,就执行语句块定的值,就执行语句块n;n;否则,就执行语句块否则,就执行语句块 n+1n+1。可以是数值表达式或字符可以是数值表达式或字符串表达式。串表达式。中的值的类型必须与中的值的类型必须与的类型相同。的类型相同。每个语句块每个语句块由一行或多行语句由一行或多行语句组成。组成。执行情况:执行情况:执行下一语句执行下一语句执行
36、情况:执行情况:执行下一语句执行下一语句执行情况:执行情况:执行下一语句执行下一语句True执行情况:执行情况:执行下一语句执行下一语句True执行情况:执行情况:执行下一语句执行下一语句False执行情况:执行情况:执行下一语句执行下一语句FalseTrue执行情况:执行情况:执行下一语句执行下一语句FalseTrue执行情况:执行情况:执行下一语句执行下一语句FalseFalse执行情况:执行情况:执行下一语句执行下一语句FalseFalseTrue执行情况:执行情况:执行下一语句执行下一语句FalseFalseTrue执行情况:执行情况:执行下一语句执行下一语句FalseFalseFal
37、se执行情况:执行情况:执行下一语句执行下一语句FalseFalseFalse 说明:说明:称为称为Case域值域值,可以是下列,可以是下列3种形式之一种形式之一。,域值为逗号分隔的值表,相当于域值为逗号分隔的值表,相当于“或或”的关系,即当的关系,即当的值等于域值的其中之一时,就执行该的值等于域值的其中之一时,就执行该Case分分支的语句。支的语句。例如:例如:Case 2,4,6,8表示测试表达式的值等于表示测试表达式的值等于2、4、6、8时执行相应分支的语句。时执行相应分支的语句。但不能写成:但不能写成:Case 2 Or Or 4 Or 6 Or 8错误错误Select Case Sc
38、ore10 Case 8,9,10 Write(“very good!”)Case 6,7 Write(“good!“)Case 0,1,2,3,4,5 Write(“no good!”)End Select To 关键字关键字To用于指定域值的范围,用于指定域值的范围,=。若测试表达式的值落在若测试表达式的值落在至至之间(包括之间(包括和和),则执行该),则执行该Case分支的语句。分支的语句。例如:例如:Select Case Score10 Case 8 to 10 Write(“very good!”)Case 6 to 7 Write(“good!“)Case 0 to 5 Writ
39、e(“no good!”)End Select Is 关键字关键字Is表示当测试值满足表示当测试值满足指定条件时,执行指定条件时,执行该该Case分支的语句。分支的语句。例如:例如:Case Is 10 表示当表示当的值的值 10时执行时执行相应相应Case分支的语句。分支的语句。Case Is=5 表示当表示当的值的值=5时执行时执行相应相应Case分支的语句。分支的语句。在一个在一个Case域值中,域值中,上述三种形式可以混合使用。上述三种形式可以混合使用。例如:例如:400204003005.22300200252001005.2710030dddddp 例例3-5算法设计算法设计 输入
40、货物重量输入货物重量w和托运距离和托运距离d 按公式确定单价按公式确定单价p按公式计算总运费按公式计算总运费 输出总运费输出总运费 Imports System.ConsoleModule Module1 Sub Main()Dim w!,d!,p#,t#Write(请输入货物重量(吨):)w=Val(ReadLine()Write(请输入托运距离(千米):)d=Val(ReadLine()Select Case d Case Is 100 p=30 Case Is 200 p=27.5 Case Is 300 p=25 Case Is 400 p=22.5 Case Else p=20 En
41、d Select t=p*w*d WriteLine(货物重量:0吨,托运距离:1千米,w,d)WriteLine(总运费:0元,t)End SubEnd Module Select Case d Case Is 100 p=30 Case Is 200 p=27.5 Case Is 300 p=25 Case Is 400 p=22.5 Case Else p=20 End Select t=p*w*d WriteLine(货物重量:0吨,托运距离:1千米,w,d)WriteLine(总运费:0元,t)End SubEnd Module 由于Select Case语句用测试值对Case子句顺
42、序测试,类似嵌套If语句,Case子句的放置顺序与判断逻辑有关。Select Case d Case Is 400 p=30 Case Is 300 p=27.5 Case Is 200 p=25 Case Is 100 p=22.5 Case Else p=20 End Select对吗?为什么对吗?为什么?Main过程过程Imports System.ConsoleModule Module1 Sub Main()Dim score!Dim n1%,n2%,n3%,n4%,n5%,total%WriteLine(请输入分数:(-1 结束))WriteLine(输入数据:)L1:score=
43、Val(ReadLine()If score 100 Then GoTo L2 Else total=total+1 例例3-6Select Case score Case Is=90 n1=n1+1 Case Is=80 n2=n2+1 Case Is=70 n3=n3+1 Case Is=60 n4=n4+1 Case Else n5=n5+1 End Select End If GoTo L1L2:WriteLine(总人数:0,total)WriteLine(优秀:0,n1)WriteLine(良好:0,n2)WriteLine(中等:0,n3)WriteLine(及格:0,n4)Wr
44、iteLine(不及格:0,n5)End SubEnd Module3.2 3.2 循环结构循环结构 例如,计算例如,计算 S=1 S=S*2 S=S*2 S=S*2n2n n次次又如,输出一列又如,输出一列10个个“*”WriteLine(“*”)WriteLine(“*”)WriteLine(“*”)1010次次3.3.1 3.3.1 循环的概念循环的概念3.3.2 While 3.3.2 While EndEnd While While 语句语句 一般格式、功能和执行情况一般格式、功能和执行情况 功能:功能:当条件为当条件为true时重复执行循环体,一直到条时重复执行循环体,一直到条件为
45、件为false时止。时止。例如,输入一组正数,个数不能事先确定,对这些数例如,输入一组正数,个数不能事先确定,对这些数据进行求和。据进行求和。S=0 Write(输入正数(输入正数(-1结束)结束)):X=Val(ReadLine()While x0 S=S+x Write(输入正数(输入正数(-1结束)结束)):X=Val(ReadLine()End While WriteLine(S=0,S)循环语句循环语句 例如,输入一组正数,个数不能事先确定,对这些数例如,输入一组正数,个数不能事先确定,对这些数据进行求和。据进行求和。S=0 Write(输入正数(输入正数(-1结束)结束)):X=V
46、al(ReadLine()While x0 S=S+x Write(输入正数(输入正数(-1结束)结束)):X=Val(ReadLine()End While WriteLine(S=0,S)循环语句循环语句循环条件循环条件 例如,输入一组正数,个数不能事先确定,对这些数例如,输入一组正数,个数不能事先确定,对这些数据进行求和。据进行求和。S=0 Write(输入正数(输入正数(-1结束)结束)):X=Val(ReadLine()While x0 S=S+x Write(输入正数(输入正数(-1结束)结束)):X=Val(ReadLine()End While WriteLine(S=0,S)
47、循环语句循环语句循环条件循环条件循环体循环体 执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrue 执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrue 执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrue 执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrue 执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrue 执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrue 执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrue 执行情况:执行情况:条
48、件条件语句语句下一个语句下一个语句FalseTrue 执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrue 执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrue 执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrue 执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrue示例:示例:S=0Write(输入正数(输入正数(-1结束)结束))X=Val(ReadLine()While x0 S=S+x Write(输入正数(输入正数(-1结束)结束))X=Val(ReadLine()End WhileWriteLi
49、ne(S=0,S)执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrue示例:示例:S=0Write(输入正数(输入正数(-1结束)结束))X=Val(ReadLine()While x0 S=S+x Write(输入正数(输入正数(-1结束)结束))X=Val(ReadLine()End WhileWriteLine(S=0,S)执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrue示例:示例:S=0Write(输入正数(输入正数(-1结束)结束))X=Val(ReadLine()While x0 S=S+x Write(输入正数(输入正数(-1结束)
50、结束))X=Val(ReadLine()End WhileWriteLine(S=0,S)执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrueS=0Write(输入正数(输入正数(-1结束)结束))X=Val(ReadLine()While x0 S=S+x Write(输入正数(输入正数(-1结束)结束)):X=Val(ReadLine()End WhileWriteLine(S=0,S)示例:示例:输入:输入:5 执行情况:执行情况:条件条件语句语句下一个语句下一个语句FalseTrueS=0Write(输入正数(输入正数(-1结束)结束))X=Val(ReadLin