分享

VB程序设计程序控制结构(三)

 你喜欢那个 2012-05-13

Go To语句

当程序流程需要无条件转移时,我们可以使用Go To语句来实现。Go To语句可以无条件地转移到标号或行号指定的那行语句。其中,标号是一个字符序列,行号是一个数字序列。

语法格式:Go To {标号|行号}

【例6.13】编程求100以内的素数之和。

(1) 分析。判断某数m是否为素数最简单的方法是分别判断m能否被i整除,i=23m1。在判断过程中,只要遇到一个i能整除m,就说明m不是素数,否则m是素数。

(2) 为窗体的单击事件编写下面程序代码。

Private Sub Form_Click()

        Dim m As Integer, I As Integer, S As Integer

        S = 0

        For m = 2 To 100

           For I = 2 To m - 1

              If (m Mod I) = 0 Then GoTo NotNextM

           Next I

           S = S + m

NotNextM: Next m

Print "100以内的素数之和为:"; S

 End Sub

(3) 程序功能。运行程序,单击窗体,输出100以内素数之和,如图6-15所示。

6.3.2  On-Go To语句

On-GoTo语句类似于情况语句,用来实现多分支选择控制,一般格式如下:

  On 数值表达式 GoTo 行号表列 | 标号表列 

On-GoTo语句的执行过程是:先计算“数值表达式”的值,将其四舍五入处理得一整数,然后根据该整数的值决定转移到第几个行号或标号执行;如果其值为1,则转向第一个行号或标号所指出的语句行;如果为2,则转向第二个行号或标号指出的语句行,依此类推。如果“数值表达式”的值等于0或大于“行号表列”或“标号表列”中的项数,程序找不到适当的语句行,将自动执行On-GoTo语句下面的一个可执行语句。

注意,在Visual Basic中,On-GoTo语句可以用情况语句来代替。应尽量使用情况语句,少用或不用On-GoTo语句。

示例:

On m GoTo 11,12,Start,Loop1

执行该语句时,若m的值为1,则转移到行号为11的语句;若m的值为2,则转移到行号为22的语句;若m的值为3,则转移到语句标号为Start的语句;若m的值为4,则转移到语句标号为Loop1的语句;若m的值不在14的范围,则执行本语句的下一个语句。

 

6.4  控制结构应用程序举例

在循环结构中可以完整嵌套选择结构,即整个选择结构都属于循环体。同样,也可以在选择结构中嵌套循环结构,但是要求整个循环结构必须完整地嵌套在一个分支内,一个循环结构不允许出现在两个或两个以上的分支内。

【例6.14】在窗体上显示1001 000之间所有能同时被1550整除的数及其和。

(1) 分析。对1001 000之间的每个数都要进行相同的操作,故适合用循环结构实现;对某一个数,要先判断,若条件成立,才进行显示与求和运算,故适合采用选择结构实现。

(2) 在窗体的单击事件上编写下面过程代码:

Private Sub Form_Click()

Dim sum As Integer

Sum=0

For  i=100  to  1000

    If  i Mod 15 =0  And  i Mod 50=0  then

      Print  i

      sum=sum+i

      End If

Next I

Print "能同时被1550整除的数的和是:"sum

End Sub

程序功能。单击窗体,输出满足条件的数及其和,运行结果如图6-16所示。

【例6.15】在窗体上输出199之间的全部自同构数。自同构数是这样一组数:它与它的平方数的末几位数相等。例如,5等于其平方数25的最末1位,25等于其平方数625的最末2位,所以525都是自同构数。

(1) 分析。对199之间的每个数都要进行相同的操作,故适合用循环结构实现;对某一个数,要先判断,若满足自同构数条件,才将这个数显示在窗体上,故适合采用选择结构实现。

(2) 在窗体的click事件上编写下面过程。

Private  Sub  Form_Click()

  Print "199以内的所有自同构数显示如下: "

  For  i =1 to 99

    j =i*i

    If  j Mod 10 =i  Or  j Mod 100 =i  Then

      Print  i ;

    End if

  Next  i

End  Sub

(3) 程序功能。执行程序,运行结果如图6-17所示。

【例6.16】编程求解百鸡问题。鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

(1) 分析。设变量xyz分别表示鸡翁、鸡母、鸡雏的数量,由百钱买百鸡,我们可以构造两个含有xyz的一次方程:x+y+z=1005x+3y+z/3=100

(2) 编写窗体的单击事件过程。

Private  Sub  Form_Click()

Dim x  As Integer , y As Integer , z As Integer

Print "公鸡","母鸡","小鸡"

For  x=1 to 19

     For y=1 to 33

        z=100-x-y

        If  5*x+3*y+z/3=100  Then

           Print x,y,z

        End if

     Next y

Next  x

End Sub

(3) 程序功能。单击窗体,程序运行结果如图6-18所示。         

小结:

当程序流程需要无条件转移时,我们可以使用Go To语句来实现。Go To语句可以无条件地转移到标号或行号指定的那行语句。

在循环结构中可以完整嵌套选择结构,即整个选择结构都属于循环体。同样,也可以在选择结构中嵌套循环结构,但是要求整个循环结构必须完整地嵌套在一个分支内,一个循环结构不允许出现在两个或两个以上的分支内。

 

作业:

1、  试说明Go To语句的功能。

2列举出不少于3例控制结构的应用实例?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多