




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、循环特点:在满足特定条件的情况下,反复执行某程序段。While循环While循环的格式是这样的:while(条件表达式)语句代码,意思是满足括号内的条件时,执行花括号内的语句代码。或者更专业一点来说,当括号内的条件表达式返回值为真时,执行花括号内的代码,一直到条件表达式的返回值为假时,跳出循环。While循环很容易出现死循环这种状况,就是因为忘记写了“增量”这个东西。/死循环int count = 0 ;/ while (count < 100) / printf("今天我真帅.n");/ 上面的代码就是少了count+,这个增量,所以,条件表达式一直满足,就一直执行
2、,就造成了死循环。此时,应该这样改进: /循环变量 :控制循环次数/ int count = 0;/ while (/* + 在前,打印两次 */count/* + 在后,打印三次*/ < 3 ) / / printf("今天我真帅.n");/ count = count +1;/ / /此处,+ 在前在后都不影响打印次数。/ / /循环增量/ count +;/ + count;/ 一些例子: /练习 /打印1100/ int num = 0;/ while (num < 100) / printf(" %d n",(num + 1);/
3、/ num +;/ /用while 打印能被7整除的1100之间的数。/ int num = 1;/ while (num <= 100) / / if(num % 7 = 0)/ printf("%d t",num);/ / num +;/ /用while循环打印出1100之间各位为7的数。/ int num = 0;/ / while (num < 100) / / if(num % 10 = 7)/ printf("%d t",(num);/ / num + ;/ /用while循环打印出1100之间十位为7的数。 num / 10 =
4、 7 / int num = 0;/ while (num < 100) / if(num / 10 =7)/ printf("%d t",num);/ / num +;/ Do-while循环与while不同的只有一个地方,就是先执行一遍代码,再进行判断。也就是说,不管你while的条件表达式成不成立,返回值为不为假,我都执行一遍循环体的代码。 / do while / do/ printf("至少执行一次,不管后面的判断条件是真还是假");/ while (1) ;/ ; 分号不能丢随机数arc4random()产生随机数的方法,arc4ran
5、dom()可以产生int范围内的任意一个随机数,包括有正数和负数,为什么会出现负数呢?因为,在存储的时候,生成的数的最高位的数字为1,此时,会认为这个1是符号位的负,因此会出现负数。这时,我们应该把这些情况避免掉,在输出之前,用unsigned 来定义一个变量来接收产出的随机数;在输出的过程中,占位符不再用%d,而是用%u来代替。另一个值得注意的是,随机数产生的时候,数字会很大,而我们在代码过程中,不需要这么大的数,此时,想要把这个数减小,可以用取余的办法来限制。 /随机数 arc4random(), /用%u来打印,表示无符号。 /由于随机函数给的值很大,我们采用取余的方法,使值变小。 取余
6、的随机数的范围就是,0被除数-1 / printf("%u t", arc4random() % 10);/打印 只有010的数在产生一个随机数的时候,可以让它在固定的区间内产生,那么就会用到这个公式: /取某区间a,b的数,用公式:arc4random() % (b-a+1)+a若是规定在负空间生成随机数,那么就将公式改成:/arc4random() % (b-a+1)-a一些例子:/用户输入一个N,用while打印N个随机数(1030)/ int num = 0;/ int count = 0;/ printf("输入一个数:");/ scanf(&
7、quot;%d",&num);/ printf("产生 %d 随机数为: nt",num);/ while (count < num) / / /unsigned 声明一个无符号int 类型。/ unsigned unum = (arc4random()%(30-10+1)+10);/ printf(" 第 %d 个数为:%d t",(count+1), unum);/ count +;/ /输入一个数,用while打印n个随机数(3070),找出随机数中最大值。 / int num = 0;/ printf("输入一个
8、数:n");/ scanf("%d",&num);/ int count = 0;/ int max = 0;/ while (count < num ) / unsigned unum = (arc4random()%(70-30+1)+30);/ printf(" 第 %d 个数为:%d n",(count+1), unum);/ / if(max < unum )/ max = unum;/ / count +;/ / printf("n ");/ printf("最大的数为:%d n&q
9、uot;,max);Break和continue这两个关键字在开发过程中经常遇见,他们的区别如下:break:在某个循环的时候,用上break,意思就是停止这个循环,不再执行这个循环,我要跳出这个循环。continue :在某个循环的时候,在过程中用上continue,意思就是,我在的这个循环还在运行,但是我不运行这一次的循环,我要跳到下一次的循环去,但是还是在这个循环里,没有跳出去,只是不执行这次罢了。 /循环变量/ int count = 0;/ while (count <10) / / count +;/ / if(count = 3)/ /结束本次循环/ continue;/
10、/*/ 输出结果:/ / 第 1 天/ 第 2 天/ 第 4 天/ 第 5 天/ 第 6 天 / 第 7 天 / 第 8 天 / 第 9 天 / 第 10 天 */ / if(count = 5)/ /结束循环/ break;/ / /*/ 输出结果:/ / 第 1 天/ 第 2 天/ 第 4 天 */ / / printf("第 %d 天 n",count);/ / for循环for循环和while差不多,但是是将条件和增量,循环变量都一起放在了小括号里。值得注意的是:while与for的比较时,for的一个好处相比于while 循环:while 中存在浪费内存的情况,因
11、为循环变量在while循环外边,直到它所在的花括号结束,才释放内存。而 for循环 的循环变量 在for循环结束后,即释放。for循环的执行过程是这样的:for(int i= 0 ; i < 100;i+)循环体在运行到本处时,先进行赋初值,然后判定条件,满足则跳进循环体执行代码,执行循环体代码结束后,对i进行自增i+,然后进行判断,执行,自增四。如此循环下去。 / for 循环/ int count = 0;/ while (count < 5) / printf("n我是 while 循环。");/ count +;/ / for(循环变量 ; 条件 ; 增
12、量) 循环体 / for (int i = 0;i < 5; i+) / printf("n我是 for 循环哦。");/ /练习 /打印 0 100 / for (int i = 0; i <= 100; i +) / printf("%d t",i);/ /打印1100 / 相比于while 循环:while 中存在浪费内存的情况,因为循环变量在while循环外边,直到它所在的花括号结束,才释放内存。 / 而 for循环 的循环变量 在for循环结束后,即释放。/ for (int j = 0; j < 100; j +) / pr
13、intf("%d t",(j + 1);/ /打印 */ for (int i = 0; i < 3; i + ) / printf("*");/ 循环嵌套当我们发现,一个循环自身又要循环多次时,用循环嵌套:循环里有循环。 /打印 /* * * * */ /两层for循环 /外层for:负责控制行/ for (int j = 0; j < 3; j+) / /内层 for 负责每行打印多少个/ for (int i = 0; i < 3; i + ) / printf("*");/ / printf("n&
14、quot;);/ /打印 /* 1 1 2 1 2 3 */ / 里边的个数跟行数一样,(第一行有一个,第二行有2个。)那么只要 i <= j 就可以了。 / for (int j = 1; j <= 3; j+) / for (int i = 1; i <= j; i +) / printf("%d ",i);/ / printf("n");/ /打印乘法口诀表/ for (int i = 0; i < 9; i +) / /列/ for (int j = 0; j <= i ; j +) / printf(" %d * %d = %d t",j+1,i+1,(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 如何备战2025年公务员笔试试卷及答案
- 2025年食品安全与质量管理考试试卷及答案
- 2025年自然语言处理专业考试试卷及答案
- 2025年城市地理学考试试题及答案剖析
- 高品质数字调音台网络直播音效库租赁及售后支持协议
- 执业医师与医疗机构医疗培训合作协议
- 美团餐饮店铺线上会员体系建立与运营合同
- 创新型企业股权并购融资专项合作协议
- 抖音直播推动乡村产业融合发展合作协议
- 高效商标续展专业代理服务合同
- 广东2025年广东省生物制品与药物研究所招聘12人笔试历年参考题库附带答案详解
- 2024北京西城区五年级(下)期末英语试题及答案
- 《古埃及文明》课件
- 历届全国初中应用物理知识竞赛汇编
- 国企笔试招聘题目
- 医院培训课件:《西门子Syngo.via工作站的临床应用》
- 企业刑事合规培训课件
- 订做门合同协议范本
- 2025年新版《保障中小企业款项支付条例》解读学习课件
- 学校文化活动对儿童成长的影响研究
- 项目实施进度跟踪与调整方案
评论
0/150
提交评论