
例题2.7:通过本实例掌握循环语句的灵活使用,运行参考界面如图2.48所示。要求如下: (I)将配套素材文件夹Chapter22下的窗体文件Exp7vb到加“Exp”的项目,并将该窗体设 为项目的启动窗体。 (2)编写代码实现以下功能: 1)单击按钮统计完数时,在相应的标签控件中显示100以内的所有完数和完数的个数。 50 2)单击按钮计算时,计算表达式∑k+∑k+) 1 的值,结果保留小数点后2位数, k=1 显示在其右边的标签控件中。 3》单击按钮玩汗☐时,统计文本串中数字的个数,字母的个数,空格个数和其他字符的 个数,文本串由按钮上方的文本框获取,统计结果显示到相应的标签控件中。 日循环综合应用举例 口回☒ 显示并统计100以内的所有完数 统计完数 完数的个数: 2 完数显示: 628 计算表达式 计算 47510.93 分类统计 How are you? 统计☐ 数字个数 字母个数 空格个数 其他字符个数 0 1 图2.48循环综合应用举例运行参考界面 解题步骤: (1)加载指定素材Exp7.vb并将其设为启动窗体。 (2)给统计完数按钮编写代码并运行调试。涉及以下两个问题: 1)什么是完数?完数的定义:如果一个数恰好等于它的因子之和,那么这个数就称为完数, 如6的因子为1,2,3,符合6=1+2+3,所以6就是完数。所以对于给定的i,先找出其所 有因子,并将因子进行累加,然后将ⅰ与其因子的累加值进行比较。 2)本编码又涉及计数器的用法和在标签控件中连续输出数据的情形,希能熟练掌握,参考 代码截图如图2.49所示
例题 2.7:通过本实例掌握循环语句的灵活使用,运行参考界面如图 2.48 所示。 要求如下: (1) 将配套素材文件夹 Chapter2 下的窗体文件 Exp7vb 到加“Exp”的项目,并将该窗体设 为项目的启动窗体。 (2) 编写代码实现以下功能: 1)单击按钮 时,在相应的标签控件中显示 100 以内的所有完数和完数的个数。 2)单击按钮 时,计算表达式 = = = + + 10 1 8 1 50 1 1 ! k k k k k k 的值,结果保留小数点后 2 位数, 显示在其右边的标签控件中。 3)单击按钮 时,统计文本串中数字的个数,字母的个数,空格个数和其他字符的 个数,文本串由按钮上方的文本框获取,统计结果显示到相应的标签控件中。 图 2.48 循环综合应用举例运行参考界面 解题步骤: (1)加载指定素材 Exp7.vb 并将其设为启动窗体。 (2)给 按钮编写代码并运行调试。涉及以下两个问题: 1)什么是完数?完数的定义:如果一个数恰好等于它的因子之和,那么这个数就称为完数, 如 6 的因子为 1,2,3,符合 6=1+2+3,所以 6 就是完数。所以对于给定的 i,先找出其所 有因子,并将因子进行累加,然后将 i 与其因子的累加值进行比较。 2)本编码又涉及计数器的用法和在标签控件中连续输出数据的情形,希能熟练掌握,参考 代码截图如图 2.49 所示

·功能:统计100以内完数的个数并输出完数 ’完数的规则是:如果一个数恰好等于它的因子之和,如6=1+2+3 Private Sub btnInt_Click(ByVal sender As System.Object,ByVal e As System. Dim i,j As Integer Dim s,count As Integer count =0 For i =1 To 100 s=0 ’初始化用于累加因数的累加器 For j=1 To i-1 If i Mod i=0 Then s=s+j 将因数进行累加 End If Next If i=s Then '按完数的定义规则进行判断 countcount 1 ’计数器加1 blB.Text=1blB.Text&””&i ’连续输出 End If Next lblA.Text count End Sub 图2.49统计并显示100以内完数的参考代码截图 (3)给计算 按钮编写代码并运行调试。表达式 二k+2+23】 由三部分构成,注 k=1 意计算第2部分 , 累乘器的初始化语句:s=1的位置,参考代码截图如图2.50所示。 k=l ’功能:计算多项之和 Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System. Dim sum,s As Double Dim i,j As Integer sm=0’初始化总的累加器 Fori=1To50’该循环计算150之和 sum sum +i Next For i 1 To 8 ,该循环用于累加1^8的阶乘 8=1 :初始化用于存放i!的累乘器 For j=1 To i ’该循环计算1 s=s米j Next sumsum s ’将!添加到总的累加器中 Next For i =1 To 10 ’该循环计算并累加1/11/10 sum sum 1 /i ’将1/1添加到总的累加器中 Next sum =Math.Round(sum,2) lblSum.Text sum End Sub 图2.50计算多项表达式的参考代码截图 (4)给统肝☐按钮编写代码并运行调试。本题的关键是逐个判断文本串中的每个字符, 这里仅说明两种做法,以判断位置索引为ⅰ的字符是否是数字为例:
图 2.49 统计并显示 100 以内完数的参考代码截图 (3)给 按钮编写代码并运行调试。表达式 = = = + + 10 1 8 1 50 1 1 ! k k k k k k 由三部分构成,注 意计算第 2 部分 = 8 1 ! k k ,累乘器的初始化语句:s=1 的位置,参考代码截图如图 2.50 所示。 图 2.50 计算多项表达式的参考代码截图 (4)给 按钮编写代码并运行调试。 本题的关键是逐个判断文本串中的每个字符, 这里仅说明两种做法,以判断位置索引为 i 的字符是否是数字为例:

1)利用Char.IsDigit(str,i),其中i是位置索引,从0开始。 2)设一个Char型的中间变量ch,用于获得位置索引为i的字符,对应语句是: ch str.Substring(i,1) 得到位置索引为的字符 然后利用Char类带一个参数的函数IsDigit来判断ch是否是数字,即: Char.IsDigit(ch),本例采用第2种做法,参考代码截图如图2.51所示,本例中依然 遇到计数器的使用。 ·功能:统计文本串中数字、字母、空格和其他字符的个数 Private Sub Button2_Click(ByVal sender As System.Object,ByVal e As System. Dim str As String Dim ch As Char Dim i,numDigital,numLetter,numSpace,numOther As Integer 获取文本串 str =txtStr.Text 初始化各计数器 numDigital =0 numLetter =0 numSpace =0 numOther =0 For i=0 To str.Length -1 ch=str.Substring(i,1) ’得到位置素引为的字符 If Char.IsDigit(ch)Then ·依据判,结果决定计数器的取值 numDigital numDigital 1 ElseIf Char.IsLetter(ch)Then numLetter numLetter 1 ElseIf Char.IsWhiteSpace(ch)Then numSpace numSpace 1 Else numother numother 1 End If Next ’输出结果 lblDigital.Text numDigital lblLetter.Text numLetter 1blSpace.Text numSpace 1bl0ther.Text numOther End Sub 图2.51统计文本串中各类字符的参考代码截图
1)利用 Char.IsDigit(str, i),其中 i 是位置索引,从 0 开始。 2) 设一个Char型的中间变量ch,用于获得位置索引为i的字符,对应语句是: ch = str.Substring(i, 1) '得到位置索引为i的字符 然后利用Char类带一个参数的函数IsDigit来判断ch是否是数字,即: Char.IsDigit(ch),本例采用第2种做法,参考代码截图如图2.51所示,本例中依然 遇到计数器的使用。 图 2.51 统计文本串中各类字符的参考代码截图