收藏 分销(赏)

C语言循环知识点总结说课材料.doc

上传人:xrp****65 文档编号:7306534 上传时间:2024-12-29 格式:DOC 页数:6 大小:26.50KB 下载积分:10 金币
下载 相关 举报
C语言循环知识点总结说课材料.doc_第1页
第1页 / 共6页
C语言循环知识点总结说课材料.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
C语言循环知识点总结说课材料 循环 特点:在满足特定条件的情况下,反复执行某程序段。 While循环 While循环的格式是如此的:while(条件表达式){语句代码},意思是满足括号内的条件时,执行花括号内的语句代码。或者更专业一点来说,当括号内的条件表达式返回值为真时,执行花括号内的代码,不断到条件表达式的返回值为假时,跳出循环。 While循环特别容易出现死循环这种情况,确实是由于不记得写了增量“这个东西。 //死循环 int count = 0 ; // while (countlt; 100) { // printf(今天我真帅...\n); // } 上面的代码确实是少了count++,这个增量,因此,条件表达式不断满足,就不断执行,就造成了死循环。 现在,应该如此改良: //循环变量:操纵循环次数 // int count = 0; // while (/* ++ 在前,打印两次*/count/* ++ 在后,打印三次*/lt; 3 ) { // // printf(今天我真帅...\n); //// count = count +1; // // //此处,++ 在前在后都不阻碍打印次数。 // // //循环增量 // count ++; //// ++ count; // } 一些例子: //练习 //打印1~100 // int num = 0; // while (num lt; 100) { // printf( %d \n,(num + 1)); // // num ++; // } //用while 打印能被7整除的1~100之间的数。 // int num = 1; // while (num lt;= 100) { // // if(num % 7 == 0){ // printf(%d \t,num); // } // num ++; // } //用while循环打印出1~100之间各位为7的数。 // int num = 0; // // while (num lt; 100) { // // if(num % 10 == 7){ // printf(%d \t,(num)); // } // num ++ ; // } //用while循环打印出1~100之间十位为7的数。num / 10 == 7 // int num = 0; // while (num lt; 100) { // if(num / 10 ==7){ // printf(%d \t,num); // } // num ++; // } Do-while循环 与while不同的只有一个地点,确实是先执行一遍代码,再进展推断。也确实是说,不管你while的条件表达式成不成立,返回值为不为假,我都执行一遍循环体的代码。 // do while // do{ // printf(至少执行一次,不管后面的推断条件是真仍然假); // }while (1) ;// ; 分号不能丢 随机数arc4random() 产生随机数的方法,arc4random()可以产生int范围内的任意一个随机数,包括有正数和负数,为什么会出现负数呢?由于,在存储的时候,生成的数的最高位的数字为1,现在,会认为这个1是符号位的负,因此会出现负数。这时,我们应该把这些情况防止掉,在输出之前,用unsigned 来定义一个变量来接收产出的随机数;在输出的过程中,占位符不再用%d,而是用%u来代替。 另一个值得留意的是,随机数产生的时候,数字会特别大,而我们在代码过程中,不需要这么大的数,现在,想要把这个数减小,可以用取余的方法来限制。 //随机数arc4random(), //用%u来打印,表示无符号。 //由于随机函数给的值特别大,我们采纳取余的方法,使值变小。取余的随机数的范围确实是,0~被除数-1 // printf(%u \t, arc4random() % 10);//打印只有0~10的数 在产生一个随机数的时候,可以让它在固定的区间内产生,那么就会用到这个公式: //取某区间[a,b]的数,用公式:arc4random() % (b-a+1)+a 假设是规定在负空间生成随机数,那么就将公式改成: /arc4random() % (b-a+1)-a 一些例子: //用户输入一个N,用while打印N个随机数(10~30) // int num = 0; // int count = 0; // printf(输入一个数:); // scanf(%d,num); // printf(产生%d 随机数为:\n\t,num); // while (count lt; num) { // // //unsigned 声明一个无符号int 类型。 // unsigned unum = (arc4random()%((30-10+1)+10)); // printf( 第%d 个数为:%d \t,(count+1), unum); // count ++; // } //输入一个数,用while打印n个随机数(30~70),找出随机数中最大值。 // int num = 0; // printf(输入一个数:\n); // scanf(%d,num); // int count = 0; // int max = 0; // while (count lt; num ) { // unsigned unum = (arc4random()%((70-30+1)+30)); // printf( 第%d 个数为:%d \n,(count+1), unum); // // if(max lt; unum ){ // max = unum; // } // count ++; // } // printf(\n ); // printf(最大的数为:%d \n,max); Break和continue 这两个关键字在开发过程中经常遇见,他们的区别如下: break:在某个循环的时候,用上break,意思确实是停顿这个循环,不再执行这个循环,我要跳出这个循环。 continue :在某个循环的时候,在过程中用上continue,意思确实是,我在的这个循环还在运转,但是我不运转这一次的循环,我要跳到下一次的循环去,但是仍然在这个循环里,没有跳出去,只是不执行这次罢了。 //循环变量 // int count = 0; // while (count lt;10) { // // count ++; // // if(count == 3){ // //完毕本次循环 // continue; // /* // 输出结果: // // 第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 中存在浪费内存的情况,由于循环变量在while循环外边,直到它所在的花括号完毕,才释放内存。而for循环的循环变量在for循环完毕后,即释放。 for循环的执行过程是如此的: for(①int i= 0 ; ②ilt; 100;④i++){ ③循环体 } 在运转到本处时,先进展①赋初值,然后断定条件,满足那么跳进循环体执行代码③,执行循环体代码完毕后,对i进展自增④i++,然后进展②推断,执行③,自增四。。。如此循环下去。 // for 循环 // int count = 0; // while (count lt; 5) { // printf(\n我是while 循环。。。); // count ++; // } // for(循环变量; 条件; 增量){ 循环体} // for (int i = 0;i lt; 5; i++) { // printf(\n我是for 循环哦。。。); // } //练习 //打印0 ~100 // for (int i = 0; i lt;= 100; i ++) { // printf(%d \t,i); // } //打印1~100 // 相比于while 循环:while 中存在浪费内存的情况,由于循环变量在while循环外边,直到它所在的花括号完毕,才释放内存。 // 而for循环的循环变量在for循环完毕后,即释放。 // for (int j = 0; j lt; 100; j ++) { // printf(%d \t,(j + 1)); // } //打印*** // for (int i = 0; i lt; 3; i ++ ) { // printf(*); // } 循环嵌套 当我们觉察,一个循环本身又要循环屡次时,用循环嵌套:循环里有循环。 //打印 /* *** *** *** */ //两层for循环 //外层for:负责操纵行 // for (int j = 0; j lt; 3; j++) { // //内层for 负责每行打印多少个 // for (int i = 0; i lt; 3; i ++ ) { // printf(*); // } // printf(\n); // } //打印 /* 1 1 2 1 2 3 */ // 里边的个数跟行数一样,(第一行有一个,第二行有2个。。。)那么只要i lt;= j 就可以了。 // for (int j = 1; j lt;= 3; j++) { // for (int i = 1; i lt;= j; i ++) { // printf(%d ,i); // } // printf(\n); // } //打印乘法口诀表 // for (int i = 0; i lt; 9; i ++) { // //列 // for (int j = 0; j lt;= i ; j ++) { // printf( %d * %d = %d \t,j+1,i+1,(j+1)*(i+1)); // } // printf(\n); // } //三维数组合: // 三个for循环 //百位1~9 for(inti = 1; i lt;= 9 ; i++) { //十位0~9 for( intj = 0 ; j lt;= 9; j++) { //个位0~9 for(intk = 0 ; k lt;= 9 ; k++) { printf(%d\n,i * 100 + j * 10 + k); } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服