欢迎来到天天文库
浏览记录
ID:27573784
大小:288.01 KB
页数:45页
时间:2018-12-03
《程序的控制结构2循环》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章程序的控制结构(2)——循环C程序设计语言西南财经大学王磊6.1循环结构P循环体YN当P为真循环体P循环体YN当P为真循环体当型循环两种形式P循环体NY直到P为真循环体P循环体Y直到P为真循环体直到型循环两种形式N循环——while语句,for语句while(表达式){循环语句;}do{循环语句;}while(表达式);for(表达式1;表达式2;表达式3){循环语句;}while语句while(表达式){循环语句;}只要表达式的值为非0(真),就重复执行while循环语句,直到表达式值为0(假)时止P循环体YNdo-while语句do{循环语句;}while(表达式);
2、首先执行语句,然后判断表达式的值。如果表达式为0,结束while循环语句。否则,再次执行循环语句。语句会被至少执行一次P循环体YNfor语句for(表达式1;表达式2;表达式3){循环语句;}循环起始条件(通常对循环变量赋初值)循环结束条件(每次执行循环语句前需判断)循环增量(循环语句执行完一次后计算表达式3的值)(1)计算表达式1,计算表达式2。若表达式2的值0(不满足结束条件),则执行循环语句,若表达式2的值=0,则结束循环;执行循环语句;(3)计算表达式3,再次判断表达式2的值.依此重复下去,直到表达式2的值=0(假)。注意循环变量的使用通过循环变量i的值来控制循环次数。For
3、循环的循环总次数是已知的。for(i=1;i<=100;i++){sum+=i;}for语句for(表达式1;表达式2;表达式3){循环语句;}相当于:表达式1和表达式3可以没有或者是用逗号分隔的多个表达式的组合。但最好不要有太多的表达式组合表达式1;while(表达式2){循环语句;表达式3;}选择三种循环的一般原则如果循环次数已知,用for如果循环次数未知,用while如果循环体至少要执行一次,用do-while这只是“一般”原则,不是“原则”注意在for和while语句之后一般没有分号有分号表示循环体就是分号之前的内容(空循环体)while(i<100);i++;for(i=0
4、;i<100;i++);printf("%d",i);for通常有一个循环变量控制循环的次数,不要在循环体内改变这个变量例:计算n!=1×2×…n分别用如下语句编程forwhiledo-while循环次数已知,首先考虑用for循环语句#includemain(){inti,n;/*i是循环变量*/longp=1;/*存放阶乘的值*/printf("Pleaseentern:");scanf("%d",&n);for(i=1;i<=n;i++){p=p*i;}printf("%d!=%ld",n,p);}例:计算n!=1×2×…n例:计算n!=1×2×…nWhile循
5、环语句实现inti=1;while(i<=n){p=p*i;i++;}do…while循环语句实现inti=1;do{p=p*i;i++;}while(i<=n);只猜1次直到猜对为止最多猜10次例:循环控制语句——猜数游戏猜数游戏用到的库函数怎样模拟计算机“想”一个数呢?随机函数rand()产生[0,RAND_MAX]之间的随机数magic=rand();#includeRAND_MAX在stdlib.h中定义,不大于双字节整数的最大值32767产生[0,b-1]之间的随机数magic=rand()%b;产生[a,a+b-1]之间的随机数magic=rand()%b
6、+a;例#include#includemain(){intmagic;/*计算机"想"的数*/intguess;/*人猜的数*/magic=rand()%100+1;/*“想”一个[1,100]之间的数magic*/printf("Pleaseguessamagicnumber:");scanf("%d",&guess);if(guess>magic){printf("Wrong!Toohigh!");}elseif(guess7、printf("Thenumberis:%d",magic);}}只猜1次例#include#includemain(){intmagic;intguess;intcounter;/*记录人猜次数的计数器变量*/magic=rand()%100+1;counter=0;/*计数器变量count初始化为0,统计猜测次数*/do{printf("Pleaseguessamagicnumber:"
7、printf("Thenumberis:%d",magic);}}只猜1次例#include#includemain(){intmagic;intguess;intcounter;/*记录人猜次数的计数器变量*/magic=rand()%100+1;counter=0;/*计数器变量count初始化为0,统计猜测次数*/do{printf("Pleaseguessamagicnumber:"
此文档下载收益归作者所有