第五章循环结构程序设计第五章循环结构程序设计用用WHILE…WENDWHILE…WEND实现循环实现循环INPUT“n=”;nm=1p=1WHILEp<=nm=m*Pp=p+1WENDPRINT“m=”;mEND运行结果为:n=?5m=120即5!=120用用DODO……LOOPLOOP结构实现循环结构实现循环(1)(1)1、最简单的DO循环DO循环体LOOP循环体见程序:LOOP1-1.BASLOOP1-2.BASDOWHILE条件循环体LOOP前测试型DO循环体LOOPWHILE条件用用DODO……LOOPLOOP结构实现循环结构实现循环(2)(2)2、带WHILE子句的循环(当循环)循环体条件真假后测试型循环体条件假真带WHILE子句循环举例(1)例:求50种商品的平均价格,(N-S流程图见右)程序:total=0i=1DOWHILEi<=50INPUTstotal=total+si=i+1LOOPprice=total/50PRINT“averageprice=”;priceEND带WHILE子句循环举例(2)例:求Π的近似值。程序(前测型):sum=0i=1term=1/(i*i)DOWHILEterm>=.00001sum=sum+termi=i+1term=1/(i*i)LOOPpi=SQR(sum*6)PRINT"pi=";piEND222222521...31211166,101nn的值,再求求出精度)(也可以是其他需要的,直到用下面的公式逐项累加程序(后测型):sum=0i=1term=1/(i*i)DOsum=sum+termi=i+1term=1/(i*i)LOOPWHILEterm>=.00001pi=SQR(sum*6)PRINT"pi=";piEND带WHILE子句循环举例(3)程序(前测型):sum=0i=5DOWHILEi<5sum=sum+iLOOPPRINTsumEND执行结果:0程序(后测型):sum=0i=5DOsum=sum+iLOOPWHILEi<5PRINTsumEND执行结果:5前测试型和后测试型的循环结构有时是有区别的,不一定能够互换!QBASIC保留WHILE-WEND循环主要是为了与GW-BASIC或BASICA兼容。下面两个程序的作用相同。程序运行输出结果均为:s=1683n=33(a)(b)s=0s=0i=3i=3n=0n=0WHILEi<=99DOWHILEi<=99n=n+1n=n+1s=s+is=s+ii=i+3i=i+3WENDLOOPPRINT"s=";s,"n=";nPRINT"s=";s,"n=";nENDENDDOUNTIL条件循环体LOOP前测试型DO循环体LOOPUNTIL条件用用DODO……LOOPLOOP结构实现循环结构实现循环(3)(3)2、带UNTIL子句的循环(直到型循环)循环体条件假真后测试型循环体条件真假带UNTIL子句循环举例例求2000~2050年之间的所有闰年。闰年的条件是:①能被4整除,但不能被100整除的年份都是闰年;②能被100整除,又能被400整除的年份是闰年。根据以上两条,2000年,2004年是闰年,2001年,2100年则不是闰年。year=2000DOUNTILyear>2050IFyearMOD4=0thenIF(yearMOD100)◇0THENleap=1ELSEIF(yearMOD400)=0THENleap=1ELSEleap=0ENDIFELSEleap=0ENDIFIFleap=1THENPRINTyearyear=year+1LOOPENDyear=2000DOUNTILyear>2050IFyearMOD4=0thenIF(yearMOD100)◇0THENleap=1ELSEIF(yearMOD400)=0THENleap=1ELSEleap=0ENDIFELSEleap=0ENDIFIFleap=1THENPRINTyearyear=year+1LOOPENDFOR-NEXTFOR-NEXT循环结构循环结构FOR-NEXT循环指由FOR语句、NEXT语句的循环体三者构成的循环,它是一般格式为:FOR<循环变量>=<循环变量初值>TO<循环变量终值>STEP<循环变量增量>循环体NEXT〈循环变量〉FOR语句称为“循环起始语句”或“循环说明语句”,它的作用是确定循环变量的值如何变化,从而控制循环的次数。“循环变量初值”、“循环变量终值”和“循环变量增量”可以是常数、变量或表达式。NEXT语句是“循环终断语句”,它的作用是标志循环结构的范围,FOR-NEXTFOR-NEXT循环结构执行过程循环结构执行过程如果有以下循环:FORi=aTObSTEPcPRINTiNEXTi在执行此循环时,按以下步骤进行:①循环变量i取初值a;②将i的值与终值b比较,如果i未超过b,则接着执行步骤③到⑤,否则跳过步骤③到⑤,而直接执行步骤⑥;③执行循环体(PRINTi);④NEXT语句,循环变量i按步长c增值;即i+c->i。此时循环变量i的值已发生了变化,由一个新值取代了原来的值。“NEXTi”不是“取下一个值i”的意思;⑤返回执行步骤②;⑥循环执行终止,接着执行NEXT语句的下一个语句。FOR-NEXTFOR-NEXT循环结构循环结构举例举例(1)(1)例:顺序将50名职工的工资输入及输出。编写程序如下:FORi=1TO50INPUT"s=";sPRINTsNEXTiEND用FOR语句指定循环次数,共执行循环50次,每次输入一个数给变量s,然后输出该数,(N-S流程图见下)。FOR-NEXTFOR-NEXT循环结构循环结...