首页 4 掌握VB.NET中的程序流程控制语句

4 掌握VB.NET中的程序流程控制语句

举报
开通vip

4 掌握VB.NET中的程序流程控制语句null第4章 掌握VB.NET中的程序流程控制语句第4章 掌握VB.NET中的程序流程控制语句本章我们开始真正学习如何编写程序代码。VB.NET程序的基本组成元素是语句。我们编写程序的目的是要实现一定的功能。如何有效地将各种语句组合起来,以达到我们的目的,是本章的学习重点。章节内容章节内容4.1 什么是语句 4.2 什么是控制结构 4.2.1 顺序结构 4.2.2 选择结构 4.2.3 循环结构 4.3 语句嵌套 4.1 什么是语句4.1 什么是语句VB.NET中的语句是可包含关键字、运算符、...

4 掌握VB.NET中的程序流程控制语句
null第4章 掌握VB.NET中的程序流程控制语句第4章 掌握VB.NET中的程序流程控制语句本章我们开始真正学习如何编写程序代码。VB.NET程序的基本组成元素是语句。我们编写程序的目的是要实现一定的功能。如何有效地将各种语句组合起来,以达到我们的目的,是本章的学习重点。章节内容章节内容4.1 什么是语句 4.2 什么是控制结构 4.2.1 顺序结构 4.2.2 选择结构 4.2.3 循环结构 4.3 语句嵌套 4.1 什么是语句4.1 什么是语句VB.NET中的语句是可包含关键字、运算符、变量、常数和表达式的完整指令,可以分为声明语句和可执行语句两种。 声明语句用于命名变量、常数或过程,并指定数据类型。例如,用于声明变量的Dim语句和声明常量的Const语句就属于声明语句。 可执行语句用于启动某种操作。例如,赋值语句就属于可执行语句。本章要讲述的各种分支、循环语句也都属于可执行语句。 语句的 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 写语句的书写VB.NET中的语句书写非常灵活,可以一行放入多条语句,语句之间用冒号(:)分隔。 例如 Dim str As String = "Hello World" : MsgBox(str) null当语句太长时,也可以一条语句跨多行书写。此时需要使用行继续符在下一行继续该语句。 行继续符依次包含一个空格、一个下划线字符(_)和一个回车符。 例如 1 Dim nameVar As String 2 nameVar="John" 3 MsgBox("Hello"&nameVar& _ 4 ".How are you?") 注释语句注释语句注释行以撇号(')开头或以REM开头,后跟一个空格。 注释可以添加在代码中的任意位置,但不能添加在字符串中。 若要将注释追加到某语句,可以在该语句后插入一个撇号或REM,后面添加注释。 注释还可以位于单独的行中。例子例子1 ' 这是单独一行的注释 2 REM 这是另一行单独的注释 3 x += a(i) * b(i) ' 计算两个数的乘积 4 MsgBox(statusMessage) REM 显示当前的状态信息 语句的自动语法检查语句的自动语法检查在Visual Studio.NET IDE中书写语句时,IDE会对语句的语法进行检查。 如果语句书写完毕后,出现绿色的下滑波浪线,则说明该语句存在语法错误。 将鼠标悬停在带有下滑波浪线的语句上,即可查看到错误信息。如果不更正,代码将无法正确的编译。 4.2 什么是控制结构4.2 什么是控制结构在20世纪60年代,就出现了结构化程序设计的概念,指出程序的编写应采用结构化方法。 1966年提出了任何计算机程序都可以由3种基本结构组成。这3种基本结构是顺序结构、选择结构和循环结构。顺序结构顺序结构选择结构选择结构循环结构循环结构 当型循环 直到型循环null从图中可以看出,这3种基本结构的基本特点是每一种结构都只有一个入口和一个出口。 任何一个算法都可以用这3种基本结构实现,任何复杂的程序都可以分解为由3种基本结构组成。 4.2.1 顺序结构4.2.1 顺序结构顺序结构是最简单的控制结构,按照语句书写的顺序一句一句的执行。 典型的例子是交换两个变量x和y的值。 交换两个变量的值交换两个变量的值1 Dim x As Integer = 10 2 Dim y As Integer = 20 3 Dim temp As Integer 4 temp = x ' 此时temp中保存x的值10 5 x =y ' x值变为y的值20 6 y = temp ' y值变为temp中保存的x的值10,交换完成 4.2.2 选择结构4.2.2 选择结构考虑这样一个应用程序“SayHello” 当用户打开应用程序后,向用户显示问候信息,根据时间不同,问候信息也应该不同。因此程序需要根据当前时间判断是上午、下午还是晚上,分别给出不同的问候信息。 在这个应用中,当前时间应该作为判断条件,根据不同的判断结果,显示不同的信息,这是一个典型的选择结构。 If语句If语句(1)基本形式 If语句的语法格式如下。 If 表达式 Then 语句块1 [Else 语句块2] End If 示例1:使用If语句判断变量示例1:使用If语句判断变量If a>b Then MsgBox("a大于b") 这句代码用于判断a和b两个变量值的大小,由于执行语句只有一句,因此写在了同一行上,并省略了End If。 扩展扩展1 If a>b Then 2 MsgBox("a大于b") 3 Else 4 MsgBox("a小于等于") 5 End If 增加了第3行的Else子句,当a不大于b时,也显示相应信息。 示例2:使用If语句来实现SayHello应用程序示例2:使用If语句来实现SayHello应用程序Step1:创建应用程序工程。单击菜单栏中的【文件】→【新建项目】命令,打开【新建项目】窗口。在该窗口的【模板】列表框中,选择【Windows窗体应用程序】,并在【名称】文本框中输入“SayHello”。nullStep2:进行窗体界面设计。向窗体中添加两个Label控件,并将其Font属性设置为Arial,四号,Name属性分别设置为lblTime和lblInfo;窗体的Text属性设为“SayHello”,Name属性设置为frmSayHello。nullStep3:代码编写。 下面是窗体的Load事件过程。 1 Private Sub frmSayHello_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load 2 Dim h As Integer = Now( ).Hour 3 lblTime.Text = Now( ).ToString( ) 4 If h <= 12 Then lblInfo.Text = "Good morning,Cindy!" 5 If (h > 12) And (h < 18) Then lblInfo.Text = "Good afternoon,Cindy!" 6 If h >= 18 Then lblInfo.Text = "Good Evening,Cindy!" 7 End Sub 运行结果运行结果 代码效率 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 代码效率分析上例中我们使用3个If语句并列实现了时间判断。这3个If语句是要顺序执行的。 考虑这样一种情况:当前时间为2008-8-7 9:12:11,此时变量h的值应为9。第1个If语句的判断条件h<=12为真,显示“Good morning,Cindy!”的信息;之后第2个和第3个If语句的判断条件均为假,程序执行完毕。 null实际上,在这种情况下,第2个和第3个If语句的判断条件已经没有必要再继续进行比较了。使用并列的3个If语句虽然也可以实现我们要求的功能,但是效率上并不好。 使用ElseIf关键字使用ElseIf关键字1 Dim h As Integer = Now( ).Hour 2 lblTime.Text = Now( ).ToString( ) 3 If h < =12 Then 4 lblInfo.Text = "Good morning,Cindy!" 5 ElseIf (h > 12) And (h < 18) Then 6 lblInfo.Text = "Good afternoon,Cindy!" 7 ElseIf h >= 18 Then 8 lblInfo.Text = "Good Evening,Cindy!" 9 End If If-Then-Else语句中使用ElseIf语句的基本语法格式If-Then-Else语句中使用ElseIf语句的基本语法格式If 表达式1 Then 语句块1 ElseIf 表达式2 Then 语句块2 ElseIf 表达式3 Then 语句块3 …… Else 语句块n End If Select语句Select语句语法格式如下。 Select Case 表达式 Case 情况列表1 语句块1 Case 情况列表2 语句块2 …… Case Else 语句块n] End Select Select语句首先计算表达式的值,之后与Case语句指定的情况列表进行比较。 情况列表中可以包含一个或多个值、某个范围的值或值和比较运算符的组合。 如果匹配,则执行其后的语句块,以此类推。 如果均不匹配,则执行Case Else后面的语句块。 Case语句可以有一条或者多条,而且Case Else语句可以省略。 示例1:使用Select语句实现SayHello应用程序示例1:使用Select语句实现SayHello应用程序1 lblTime.Text = Now( ).ToString( ) 2 Select Case Now( ).Hour 3 Case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,12 4 lblInfo.Text = "Good morning,Cindy!" 5 Case 13, 14, 15, 16, 17,18 6 lblInfo.Text = "Good afternoon,Cindy!" 7 Case Else 8 lblInfo.Text = "Good evening,Cindy!" 9 End Select 示例2:使用to关键字表示连续范围示例2:使用to关键字表示连续范围1 lblTime.Text = Now( ).ToString( ) 2 Select Case Now( ).Hour 3 Case Is <= 12 4 lblInfo.Text = "Good morning,Cindy!" 5 Case 13 to 18 6 lblInfo.Text = "Good afternoon,Cindy!" 7 Case Else 8 lblInfo.Text = "Good evening,Cindy!" 9 End Select 4.2.3 循环结构4.2.3 循环结构在某些应用中,可能需要重复执行某一个语句块。例如,一个用户登录程序,用户输入户名和密码后需要进行检查,3次错误后锁定该用户。在这个应用中,有可能需要重复检查用户输入,因此应当将检查用户输入的语句块作为循环体,这是一个典型的循环结构。4种循环语句4种循环语句For-Next语句用于计数循环。 While语句用于当型循环。 Do-Loop语句用于直到型循环。 For Each语句用于集合或数组元素循环。For语句For语句For语句的语法格式 For 循环变量 = 初值 To 终值 [Step 步长] 循环体 Next [循环变量] 考虑这样一个应用程序“ComputeSum”:用户输入一个数之后,计算从1开始叠加到该数的总和。这是一个典型的计数循环的结构,可以使用For语句来实现。 示例1:使用For语句实现ComputeSum应用程序示例1:使用For语句实现ComputeSum应用程序Step1:创建应用程序工程。单击菜单栏中的【文件】→【新建项目】命令,打开【新建项目】窗口。在该窗口的【模板】列表框中,选择【Windows窗体应用程序】,并在【名称】文本框中输入“ComputeSum”。 nullStep2:进行窗体界面的设计TextBox控件TextBox控件该控件用于接收用户输入或者将计算结果显示给用户,其Text属性就是文本框中的内容。nullStep3:编写代码。在【计算】按钮上双击鼠标,打开代码窗口。由于需要单击按钮后开始计算并显示结果,所以代码应该写在按钮控件的单击事件中。null1 Dim n As Integer = CInt(txbInputNum.Text) 2 Dim sum As Long = 0 3 Dim i As Integer 4 For i = 1 To n 5 sum += i 6 Next 7 txbSum.Text = sum.ToString( ) 思考 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 :如果需要计算1到n之间偶数的累加和,代码应该如何修改呢思考题:如果需要计算1到n之间偶数的累加和,代码应该如何修改呢1 Dim n As Integer = CInt(txbInputNum.Text) 2 Dim sum As Long = 0 3 Dim i As Integer 4 For i = 2 To n step 2 5 sum += i 6 Next 7 txbSum.Text = sum.ToString( ) 循环变量初值从2开始,循环步长为2 While语句While语句考虑这样一个应用程序“Calculate Pai”:在某些需要计算精确的情况下,需要使用圆周率π的值。可以通过下面的公式来计算得到圆周率π的近似值。π/4 = 1 – 1/3 + 1/5 – 1/7 + … +1/n 在该应用中,实际是求一个数列的前n项累加和,通常要求累加至最后一项的值小于10-6。这种情形下,n的值在开始时无法确定,只能在逐渐累加的过程中进行判断,也就是说,循环次数无法确定,循环是通过1/n是否小于10-6来确定的,因此For语句并不适用。因此,VB.NET提供了While语句来实现通过某个条件进行循环。基本形式基本形式While 循环条件 语句块 End While 其中,循环条件为关系或逻辑表达式,值为Boolean类型。当循环条件为真时,循环执行语句块;当循环条件为假时,退出循环。因此While语句属于当型循环,意思是当循环条件为真时执行循环。 示例1:使用While语句求大于100的第一个3的幂次示例1:使用While语句求大于100的第一个3的幂次 1 Dim intX As Integer = 3 2 While intX<=100 3 intX*=3 4 End While 示例2:While循环条件如果为假则直接结束循环而不执行循环体示例2:While循环条件如果为假则直接结束循环而不执行循环体 1 Dim intX As Integer = 1 2 Dim intY As Integer = 1 3 While intX<>intY 4 intX+=intY 5 End While “死循环”“死循环”如果在循环体执行过程中,没有使得循环条件变为假的操作,循环体一直循环执行,我们称之为无限循环,也称为死循环。下面是一个最简单的死循环。 1 While True 2 循环体 3 End While 示例3:使用While语句来完成Calculate Pai应用程序示例3:使用While语句来完成Calculate Pai应用程序Step1:创建应用程序工程。单击菜单栏中的【文件】→【新建项目】命令,打开【新建项目】窗口。在该窗口的【模板】列表框中,选择【Windows窗体应用程序】,并在【名称】文本框中输入“Calculate Pai”。 nullStep2:进行窗体界面设计nullStep3:编写代码。在窗体上双击鼠标,打开代码窗口,编写窗体的Load事件过程。null 1 Private Sub frmCalPai_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 2 Dim dblDenominator As Double = 1 ' 用于存放项的分母 3 Dim dblTerm As Double = 1 ' 用于存放当前项的值 4 Dim intSign As Integer = 1 ' 用于表示当前项的符号 5 Dim Pai As Double = 0 ' 用于存放累加和结果 6 7 While Math.Abs(dblTerm) >= 0.0000001 8 Pai += dblTerm ' 累加 9 dblDenominator += 2 ' 第n项的分母是第n-1项的分母加上2 10 intSign = -intSign ' 改变符号 11 dblTerm = intSign / dblDenominator ' 生成下一项 12 End While 13 Pai = Pai * 4 14 txbPai.Text = Pai.ToString() ' 在文本框中显示计算结果 15 End Sub 累加,同时生成下一项For循环与While循环的比较For循环与While循环的比较在通常情况下,如果循环次数确定,一般选用For循环。 如果循环次数未知但有条件来保证循环过程是有限次数的,选用While循环。 实际上,在循环次数确定的情况下同样可以选择使用While语句。例如,“ComputeSum”应用程序中,我们使用For循环来计算从1到n的累加,同样使用While语句也可以实现。null1 Dim n As Integer = CInt(txbInputNum.Text) 2 Dim sum As Long = 0 3 Dim i As Integer =1 4 While (i<=n) 5 Sum+=i 6 i+=1 7 End While Do-Loop语句Do-Loop语句基本形式:Do {While | Until} 循环条件 循环体 Loop 其中,While和Until是可选的。 使用While时,当后面的条件满足则执行循环体。 使用Until时,当后面的条件满足就退出循环体。 无论使用While还是Until,都是先测试循环条件是否满足,再决定是否执行循环体 示例1:使用Do-While-Loop语句实现1到n的累加示例1:使用Do-While-Loop语句实现1到n的累加1 Dim n As Integer = CInt(txbInputNum.Text) 2 Dim sum As Long = 0 3 Dim i As Integer = 1 4 Do While i<=n 5 Sum+=i 6 i+=1 7 Loop 示例2:使用Do-Until-Loop语句实现1到n的累加示例2:使用Do-Until-Loop语句实现1到n的累加1 Dim n As Integer = CInt(txbInputNum.Text) 2 Dim sum As Long = 0 3 Dim i As Integer = 1 4 Do Until i>n 5 Sum+=i 6 i+=1 7 Loop Do-Loop语句的另一种形式Do-Loop语句的另一种形式Do-Loop语句还有另外一种写法 Do 循环体 Loop {While | Until} 循环条件 Loop后的While和Until与上一种写法含义相同,即使用While时,当后面的条件满足则执行循环体;使用Until时,当后面的条件满足就退出循环体。区别在于,这种写法先执行循环体再测试循环条件是否满足。因此,这种写法中循环体至少会被执行一次。示例3:使用Do-Loop-While语句实现1到n的累加示例3:使用Do-Loop-While语句实现1到n的累加1 Dim n As Integer = CInt(txbInputNum.Text) 2 Dim sum As Long = 0 3 Dim i As Integer = 1 4 Do 5 Sum+=i 6 i+=1 7 Loop While i<=n 示例4:使用Do-Loop-Until语句实现1到n的累加示例4:使用Do-Loop-Until语句实现1到n的累加1 Dim n As Integer = CInt(txbInputNum.Text) 2 Dim sum As Long = 0 3 Dim i As Integer = 1 4 Do 5 Sum+=i 6 i+=1 7 Loop Until i>n 这四段代码都是等价的。跳出循环控制跳出循环控制前面的例子中,都是循环变量值超出终值范围或者循环条件不满足,才终止循环。除此之外,还可以在循环体中使用Exit语句直接跳出循环控制结构。 根据使用的循环语句的不同,Exit语句可以有以下几种形式。 Exit For。 Exit While。 Exit Do。 示例1:求2+4+6+8+……+n<100成立的最大的n值示例1:求2+4+6+8+……+n<100成立的最大的n值1 TestExit 2 Module Module1 3 4 Sub Main() 5 Dim i As Integer = 2 6 Dim Sum As Integer = 0 7 While True 8 Sum += i 9 If Sum >= 100 Then Exit While Else 12 i += 2 13 End If 14 End While 15 MsgBox(i) 16 End Sub 17 18 End Module 死循环跳出当前循环的条件判断 示例2:判断某个数是不是素数示例2:判断某个数是不是素数4 Sub Main( ) 5 Dim N As Integer 6 Dim i As Integer = 2 7 Dim IsPrime As Boolean = True 8 N = CInt(InputBox("请输入一个整数")) For i = 2 To N - 1 If N \ i = 0 Then 11 IsPrime = False 12 Exit For 13 End If 14 Next 15 16 If IsPrime Then 17 MsgBox("是素数!") 18 Else 19 MsgBox("不是素数!") 20 End If 21 End Sub跳出当前循环的条件判断 4.3 语句嵌套4.3 语句嵌套将一个语句放在另一个语句内部称为嵌套。选择结构语句和循环结构语句均可嵌套使用,可以相同语句嵌套使用,也可以不同语句嵌套使用。双重For循环双重For循环For 循环变量1 = 初值1 To 终值1 Step 步长1 For 循环变量2 = 初值2 To 终值2 Step 步长2 循环体 Next [循环变量2] Next [循环变量1] null注意,使用语句嵌套的时候,必须是完全嵌套,像下面这样的交叉嵌套是不允许的。 While 条件2 If 条件2 then End While End If
本文档为【4 掌握VB.NET中的程序流程控制语句】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_879056
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2011-02-18
浏览量:31