2022年C语言循环知识点总结2.docx
循环特点:在满意特定条件得情形下,反复执行某程序段;While循环While 循环得格式就是这样得: while (条件表达式) 语句代码 ,意思就是满意括号内得条件时, 执行花括号内得语句代码; 或者更专业一点来说, 当括号内得条件表达式返回值为真时, 执行花括号内得代码, 始终到条件表达式得返回值为假时,跳出循环;While 循环很简单显现死循环这种状况, 就就是由于遗忘写了“增量”这个东西;/死循环int count = 0 ;/while count < 100 /printf"今日我真帅、 n"/上面得代码就就是少了count+,这个增量,所以,条件表达式始终满意,就始终执行,就造成了死循环;此时,应当这样改进:/ 循环变量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;/num +;/用while打印能被 7 整除得 1100 之间得数;/int num = 1;/while num <= 100 /ifnum % 7 = 0/printf"%d t",num;/num +;/用while循环打印出 1100 之间各位为 7得数;/int num = 0;/while num < 100 /ifnum % 10 = 7/printf"%d t",num;/num + ;/用while循环打印出 1100 之间十位为 7得数; num / 10 = 7/int num = 0;/while num < 100 /ifnum / 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;/打印 只有 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"%d",#/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"输入一个数: n"/scanf"%d",#/int count = 0;/int max = 0;/while count < num /unsigned unum = arc4random%70-30+1+30;/printf"第 %d个数为: %d n",count+1, unum;/ifmax < unum /max = unum;/count +;/printf"n "/printf"最大得数为: %d n",max;Break与 continue这两个关键字在开发过程中常常遇见,她们得区分如下:break :在某个循环得时候,用上break ,意思就就是停止这个循环,不再执行这个循环,我要跳出这个循环;continue:在某个循环得时候,在过程中用上continue ,意思就就是,我在得这个循环仍在运行,但就是我不运行这一次得循环,我要跳到下一次得循环去, 但就是仍就是在这个循环里,没有跳出去,只就是不执行这次罢了;/循环变量/int count = 0;/while count <10 /count +;/ifcount = 3/终止本次循环/continue;/*/输出结果:/第 1天/第 2天/第 4天/第 5天/第 6天/第 7天/第 8第 9第 10天天天 */ifcount = 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; i < 100; i+ )循环体在运行到本处时, 先进行赋初值, 然后判定条件,满意就跳进循环体执行代码,执行循环体代码终止后,对i 进行自增 i+ ,然后进行判定,执行,自增四;如此循环下去;/ for循环/int count = 0;/while count < 5 /printf"n我就是 while循环; "/count +;/ for循环变量 ;条件 ;增量 循环体 /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 + /printf"%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"/ 打印/*11 21 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,j+1*i+1;/printf"n"/ 三维数组合:/三个for循环/ 百位 19forinti = 1; i <= 9 ; i+ /for十位 09intj = 0 ; j <= 9; j+ /个位 09forintk = 0 ; k <= 9 ; k+ printf "%dn",i * 100 + j * 10 + k;