1 / 25

主讲人 于洪奎

第七章程序设计基础. 主讲人 于洪奎. 7.2.2 循环结构( P165 ). 条件循环( DO WHILE--ENDDO ) 步长循环( FOR --ENDFOR ) 扫描循环( SCAN--ENDSCAN ) 循环辅助语句 ( LOOP/EXIT ). 条件循环. 语句格式: DO WHILE < 条件 > < 语句序列 1> [LOOP] < 语句序列 2> [EXIT] < 语句序列 3> ENDDO. 条件循环. 功能注释 : 1 、如果第一次判断条件时,条件即为假,则循环一次都不执行。

Download Presentation

主讲人 于洪奎

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章程序设计基础 主讲人 于洪奎

  2. 7.2.2循环结构(P165) • 条件循环(DO WHILE--ENDDO) • 步长循环(FOR --ENDFOR) • 扫描循环(SCAN--ENDSCAN) • 循环辅助语句(LOOP/EXIT)

  3. 条件循环 • 语句格式: DO WHILE <条件> <语句序列1> [LOOP] <语句序列2> [EXIT] <语句序列3> ENDDO

  4. 条件循环 • 功能注释: 1、如果第一次判断条件时,条件即为假,则循环一次都不执行。 2、如果循环体包含LOOP命令,那么当遇到LOOP时,就结束循环体的本次执行,不再执行其后面的语句,而是转回DO WHILE 处重新判断条件。 3、如果循环体包含EXIT命令,那么当遇到EXIT时,就结束循环体的本次执行,转去执行ENDDO后面的语句。 4、通常LOOP或EXIT出现在循环体内嵌套的选择语句中,根据条件来决定是LOOP回去,还是EXIT出去。

  5. 条件循环示例 1、计算S=1+2+3+。。+100 程序名:QH.PRG SET TALK OFF S=0 I=1 DO WHILE I<=100 S=S+I I=I+1 ENDDO ?I ?S SET TALK ON

  6. 循环辅助语句 DO WHILE 。。。。 EXIT 。。。。 ENDDO DO WHILE 。。。。 LOOP 。。。。 ENDDO

  7. LOOP示例 功能:计算S=1+2+3+…+100,并求1~100之间的奇数和。 程序名:JSH.PRG STORE 0 TO I,S,T DO WHILE I<100 I=I+1 S=S+I IF INT(I/2)=I/2 LOOP ENDIF T=T+I ENDDO ? “1+2+3+…+100=”,S ? “1~100的奇数和为:”,T

  8. 步长循环格式 • 格式: FOR <循环变量>=<初值> TO <终值> [STEP <步长>] <循环体> ENDFOR| NEXT

  9. 步长循环功能注释 1、<步长>默认值为1。 2、<初值><终值><步长>都可以是数值表达式。但这些表达式仅在循环语句执行开始时被计算一次。在循环语句的执行过程中, 初值、终值和步长是不会改变的。 3、可以在循环体内改变循环变量的值,但这会影响循环体的执行次数。 4、LOOP和EXIT同样可以出现在循环体内。当执行到LOOP命令时,结束循环体的本次循环,然后循环变量增加一个步长值,并再次判断循环条件是否成立。

  10. 步长循环示例1 功能:计算 S=1+2+….+100 程序名:BC.PRG S=0 FOR I=1 TO 100 S=S+I ENDFOR ? “S=”,S 当STEP 2 计算结果为奇数和

  11. 步长循环示例2 功能:找出100~999之间的所有“水仙花数”(如153=13+53+33) 程序名:SXH.PRG CLEAR FOR I=100 TO 999 A=INT(I/100) B=INT((I-100*A)/10) C=I-INT(I/10)*10 IF I=A^3+B^3+C^3 ?I ENDIF ENDFOR

  12. 步长循环示例3 • 功能:从键盘输入10个数,然后找出其中的最大值和最小值。 • 程序名:MAMI.PRG CLEAR INPUT “请输入一个数:” TO A STORE A TO MA,MI FOR I=2 TO 10 INPUT “请输入一个数:” TO A IF MA<A MA=A ENDIF IF MI>A MI=A ENDIF ENDFOR ? “最大值:”,MA ? “最小值:”,MI

  13. 扫描语句格式 SCAN [<范围>] [FOR<条件1>][WHILE<条件2>] <循环体> ENDSCAN 该语句一般用语处理表中的记录。 功能注释: 1、<范围>的默认值是ALL。 2、EXIT和LOOP命令同样可以出现在该循环语句的循环体内。

  14. 扫描语句示例 clear open database 订货管理 USE 职工表 SCAN FOR 工资>1210 ?职工号,工资 ?"------------------------" ENDSCAN USE CLOSE DATABASE

  15. 步长循环嵌套示例 • 功能:显示乘法表 • 程序名:CFB.PRG CLEAR FOR I=1 TO 4 &&I是被乘数 FOR J=1 TO 4 &&J是乘数 IF I<=J ?? STR(I,1)+ “*”+STR(J,1)+ “=”+STR(I*J,2)+SPACE(2) ENDIF NEXT ? &&换行 ENDFOR

  16. 上例运行结果 1*1= 1 1*2= 2 1*3= 3 1*4= 4 2*2= 4 2*3= 6 2*4=8 3*3= 9 3*4=12 4*4=16

  17. 条件循环嵌套示例 功能:大中小马之和100,大、中、小马每次运输3、2、1/3片瓦,求用几匹大、中、小马刚好运送100片瓦。

  18. 条件循环嵌套程序 X=1 USE QQ ZAP DO WHILE X<=33 Y=1 DO WHILE Y<=50 Z=1 DO WHILE Z<=100 IF X+Y+Z=100 AND 3*X+2*Y+Z/3=100 INSERT INTO QQ VALUES(X,Y,Z) ENDIF Z=Z+1 ENDDO Y=Y+1 ENDDO X=X+1 ENDDO LIST USE

  19. 投币 利用RAND()函数、@语句、DO WHILE 和IF语句完成投币效果。 程序名:TB.PRG

  20. 投币程序 =RAND(-1) CLEAR ANSWER=“Y” STORE 0 TO TAILS,HEADS DO WHILE UPPER(ANSWER)=“Y” IF RAND()>0.5 @2,2 TO 14,22 STYLE “99” PATTERN 1 PEN 2 COLOR “B/B” @6,7 SAY “标题” COLOR W+/B FONT “ROMAN”,24 HEADS=HEADS+1 ELSE @2,2 TO 14,22 STYLE “99” PATTERN 1 PEN 2 COLOR “B/B” @6,7 SAY “细节” COLOR W+/B FONT “ROMAN”,24 TAILS=TAILS+1 ENDIF @15,4 SAY “是否投币?(Y/N)” GET ANSWER @16,4 SAY “标题” @16,11 SAY LTRIM(STR(HEADS)) @16,24 SAY “细节” @16,31 SAY LTRIM(STR(TAILS)) READ ENDDO

  21. 练习题1 • 在DO WHILE-ENDDO循环语句中,LOOP命令的作用是? A退出过程,返回程序开始。 B转移到DO WHILE 语句行,开始下一个判断和循环。 C终止循环,将控制转移到本循环结构ENDDO后面的第一条语句继续执行。 D终止程序执行。

  22. 练习题2 • 在DO WHILE-ENDDO循环语句中,EXIT命令的作用是? A退出过程,返回程序开始。 B转移到DO WHILE 语句行,开始下一个判断和循环。 C终止循环,将控制转移到本循环结构ENDDO后面的第一条语句继续执行。 D终止程序执行。

  23. 练习题3 • 如下程序段的输出结果是? I=1 DO WHILE I<10 I=I+2 ENDDO ?I

  24. 练习题4 • 执行如下程序,输入X的值为5,则最后S的值是多少? S=0 I=1 INPUT “X=” TO X DO WHILE S<=X S=S+I I=I+1 ENDDO ?S

  25. 练习题5 • 有如下程序: FOR N=1 TO 5 STEP 2 ?N ENDFOR 在此FOR循环中,循环变量N的初值、终值和步长是多少,该循环体执行了多少次。

More Related