频道栏目
首页 > 资讯 > Visual FoxPro > 正文

2011年度计算机等级考试二级VFP基础教程(25)

11-09-04        来源:[db:作者]  
收藏   我要投稿
 循环结构

  三。循环结构:前面我们学习的顺序结构和选择结构有一个共同点,即程序语句不能重复执行。而在实际应用中,常常需要多次重复执行某些语句。这样的需求适合于用循环语句来处理。在vfp中,提供了3种循环语句:do while循环、for循环及scan循环。

  1.while循环:

  格式:

  do while 条件

  语句序列

  [loop]

  [exit]

  enddo

  说明:

  (1)."do while 条件"是循环说明语句,它标志循环的开始,并判断循环条件是否为真值;当条件为真值时,则执行语句序列;否则跳到enddo后面的语句继续执行。

  (2).do while和enddo之间的语句序列也被称作循环体,是需要多次重复执行的语句,由它完成规定的数据处理工作。

  (3).循环语句中的可选项exit,用于退出循环语句,可放在循环体语句的任意位置上。若在循环体中加上该可选项,当执行exit时,跳出循环体去执行 enddo后面的语句。通常,exit是在条件语句控制下,当条件得到满足时便跳出循环;否则永远不能执行exit后面的循环体语句。

  (4).可选项loop,是循环短路语句,也可以放在循环体语句的任意位置上。当执行loop时,其后的循环体语句部分不予执行,直接返回到循环起始语句。loop也通常放在条件语句的控制下。

  (5).enddo和do while必须成对出现。

  例:将"职工档案"表中所有职称是"讲师"的工资加200元,副教授加150元,无职称的加100元。

  首先,我们修改一下"职工档案"表的结构,为其增加一个"工资"字段:

  在命令窗口依次执行如下命令:

  use 职工档案

  modify structure

  弹出"表设计器"窗口,添加一个新字段:工资 N6.1,单击"确定",保存更改。

  再执行browse命令,在弹出的browse窗口中为每条记录的"工资"填上值,

  新建一个程序文件xiugai.prg,程序文件的内容如下:

  clear

  use 职工档案

  do while .not.eof()

  do case

  case 职称="讲师"

  replace 工资 with 工资+200

  case 职称="副教授"

  replace 工资 with 工资+150

  case 职称="无"

  replace 工资 with 工资+100

  endcase

  skip

  enddo

  use

  return

  程序分析:循环程序由以下4个主要部分构成:

  A.循环的工作部分。它完成循环的主要工作,是循环体的主要部分。这里由do case---endcase组成。

  B.循环的修改部分。它保证循环体在循环过程中,有关的量能按一定的规律变化。这里的循环修改部分是skip语句,用来实现依次操作文件的各条记录。

  C.循环的控制部分。它保证循环体语句按规定的循环次数正常执行。此例中的循环控制部分是。not.eof()逻辑表达式,它表示做完所有记录的操作。

  D.循环的初始部分。它是循环控制初值。本程序中循环控制初值是隐含的,因为打开文件后,记录指针指向首记录,所以操作是从首记录开始的。

2.for循环:在已知循环次数的情况下,使用for循环比较方便

  格式:

  for 变量=初值 to 变量终值 [step]步长

  语句序列

  [exit]

  [loop]

  endfor|next

  功能:

  在循环控制变量的初值和终值的范围内执行循环语句,每执行一次循环,循环控制变量都要加上增量。当其值在规定范围内时就再次执行循环体语句序列,否则结束循环,执行循环终止语句下面的语句。跳出循环和循环短路语句exit和loop意义同前。

  具体执行步骤:

  (1).给变量赋初值;

  (2).判断变量的值是否小于等于终值;

  (3).若不是,则循环结束;

  (4).若是,则执行语句序列;

  (5).变量=变量+步长(若省略step,则步长=1);

  (6).转(2).

  例:在屏幕上输出乘法口诀表

  程序文件内容如下:

  ?"九九乘法表"

  ?

  for i=1 to 9

  for j=1 to i

  ??alltrim(str(i))+"*"+alltrim(str(j))+"="+alltrim(str(i*j))+" "

  next

  ?

  next

  3.scan循环:

  格式:

  scan [范围][for 条件]

  语句序列

  endscan

  功能:

  对表中指定范围,满足条件的记录执行循环体语句,每执行一次循环,记录指针自动移动到下一条记录。操作表时,使用该语句功能强,效率高。

  例:使用scan语句编程,显示"职工档案"表中的女教师的姓名和职称。

  use 职工档案

  scan for .not.性别

  display 姓名,性别

  endscan

  use

  return

相关TAG标签
上一篇:2011年度计算机等级考试二级VFP基础教程(24)
下一篇:2011年度计算机等级考试二级VFP基础教程(26)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站