尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

循环语句详解附加代码解析:C语言描述

循环语句详解附加代码解析:C语言描述 C语言循环语句超详细解析for/while/do-while代码实战底层执行逻辑在C语言编程中循环语句是三大流程控制顺序、选择、循环中最重要的知识点。几乎所有项目游戏逻辑、算法刷题、数据处理、嵌入式开发都离不开循环。适用人群C语言初学者、期末复习、CSDN练手、编程零基础学习目标彻底搞懂 while / do-while / for 循环知道什么时候用哪种循环一、循环的核心作用循环的本质让一段代码重复执行满足条件就执行不满足就停止。如果没有循环想要输出100次Hello World就要写100遍printf代码极度冗余。循环就是为了解决代码重复、批量处理数据的问题。C语言提供三种循环语句- while 循环先判断后执行- do-while 循环先执行后判断至少执行一次- for 循环结构最清晰高频使用适合已知循环次数二、while 循环先判断后执行1. 语法格式while(循环条件){// 循环体重复执行的代码// 条件更新语句必须有否则死循环}2. 执行逻辑判断 循环条件 是否为真非0为真 → 执行循环体代码执行完毕回到条件判断重复上述步骤为假0 → 直接跳出循环执行后续代码核心特点条件不成立循环体一次都不会执行3. 实战代码打印 1~10#includestdio.hintmain(){inti1;// 1. 初始化变量while(i10)// 2. 循环条件{printf(%d ,i);i;// 3. 条件更新关键防止死循环}return0;}4. 代码逐行分析int i 1定义计数器从1开始计数i 10只要i小于等于10就继续循环printf打印当前的数字i计数器自增让条件慢慢不成立结束循环常见坑忘记写 i → 条件永远成立 → 死循环三、do-while 循环先执行后判断1. 语法格式do{// 循环体代码}while(循环条件);// 注意末尾有分号2. 执行逻辑无条件先执行一次循环体再判断循环条件条件为真继续循环条件为假跳出循环核心特点无论条件是否成立循环体至少执行一次3. 实战代码打印 1~10#includestdio.hintmain(){inti1;do{printf(%d ,i);i;}while(i10);return0;}4. 场景对比while vs do-while我们把初始值改为 i 11看区别while条件 1110 不成立一次不执行do-while先执行一次打印再判断条件至少执行一次适用场景菜单系统、输入校验必须先执行一次再判断是否继续四、for 循环最常用、结构最规整for 循环是C语言循环的首选适合已知循环次数、遍历数组、批量循环场景。1. 语法格式for(表达式1;表达式2;表达式3){// 循环体}表达式1变量初始化只执行一次表达式2循环条件真假判断表达式3变量更新每次循环结束执行2. 执行顺序重中之重初始化 → 条件判断 → 执行循环体 → 变量更新 → 重复判断口诀初、判、行、更3. 实战代码打印 1~10#includestdio.hintmain(){// 初始化; 条件; 更新for(inti1;i10;i){printf(%d ,i);}return0;}4. 代码深度分析首次执行int i1 初始化变量仅一次判断 i10成立进入循环执行打印代码执行 i 自增回到条件判断直到条件不成立跳出优势所有循环控制变量集中在一行逻辑清晰不易写死循环5. for循环灵活写法拓展三个表达式均可省略但分号不能省// 死循环写法面试常考for(;;){printf(死循环\n);}五、break 与 continue 循环控制循环进阶必备用来干预循环执行流程1. break直接跳出循环终止当前循环执行循环外的后续代码// 打印1~5到5停止for(inti1;i10;i){if(i6)break;printf(%d ,i);}2. continue跳过本次循环只跳过当前这一次直接进入下一次循环判断// 跳过6打印1~10除了6for(inti1;i10;i){if(i6)continue;printf(%d ,i);}六、经典实战案例求和 1~100用三种循环分别实现巩固知识点1. for循环实现#includestdio.hintmain(){intsum0;for(inti1;i100;i){sumi;}printf(1~100求和%d\n,sum);return0;}2. while循环实现#includestdio.hintmain(){intsum0;inti1;while(i100){sumi;i;}printf(1~100求和%d\n,sum);return0;}七、新手常见错误总结忘记变量更新导致死循环最常见do-while漏写分号编译报错for循环括号内写多余分号循环空执行break和continue混淆break终止循环continue只跳过本次八、总结for循环结构清晰优先使用适合已知次数循环while循环适合不确定循环次数先判断再执行do-while循环适合必须执行一次的场景菜单、输入验证break跳出循环continue跳过本次循环二者都只作用于当前最近的一层循环九、给大家带来一下比较有意思的代码//6.编写一个程序打印下面的图案要求使用嵌套循环//$$$$$$$$//$$$$$$$$//$$$$$$$$//$$$$$$$$#includestdio.hintmain(){inti0;for(i1;i4;i){inta0;for(a1;a8;a){printf($);}printf(\n);}return0;}// 3.使用嵌套循环按下面的格式打印字符// F// FE// FED// FEDC// FEDCB// FEDCBA#includestdio.hintmain(){chariF;inta0;for(a0;a5;a){intb0;for(iF;ba;b){printf(%c,i-b);}printf(\n);}return0;}//5.编写一个程序提示用户输入大写字母。使用嵌套循环以下面金字塔型的格式打印字母// A// ABA// ABCBA// ABCDCBA// ABCDEDCBA//打印这样的图形要根据用户输入的字母来决定。例如上面的图形是用户输入E后的打印结果。// 提示用外层循环处理行每行使用3个内层循环分别处理空格、以升序打印字母、以降序打印字母。// 如果系统不使用ASCLL或其他以数字顺序编码的代码。//#includestdio.h//int main()//{// int line 0;// char input 0;// printf(请输入字母程序将以金字塔形式打印\n);// scanf(%c, input);// for (line 1; line input- A 1; line)//// // // // // // 一定要注意字母的ASCLL码值// // // // 一定要注意字母的ASCLL码值// // // // 一定要注意字母的ASCLL码值// // // // for (line 1; line input; line)这里我想当然了// //E是第五个字母我的本意是让外层循环循环五次// //但是计算机理解的是循环69次因为E的ASCLL码值为69// //所以应该用input - A 1当作外层循环次数控制打印行数// {// int c 0;// //内层循环一// for (c input-line-64;c 0 ;c--)// //循环一用来打印字符前面的空格降序打印形成金字塔型// {// printf( );// }// int i 0;// //内层循环二// for ( i 0; i (2 * line - 1)/2; i)// //循环二升序打印字母一直打印到第line个字母// {////// printf(%c,Ai);// }// int a 0;// //内层循环三// for (a (2 * line - 1) / 2 1; a 0; a--)// //循环三降序打印字母从line1个字母开始打印直到打印到A。// {// printf(%c, (Aa-1));// }// printf(\n);//每行字符打印完之后换行// }// //printf(%c, A 1);//// return 0;//}后续会更新嵌套循环、循环刷题真题、九九乘法表、冒泡排序等循环进阶内容需要的小伙伴可以关注博主祝大家////////////////////////////////////////////////////////////////////// _ooOoo_ //// o8888888o //// 88 . 88 //// (| ^_^ |) //// O\ /O //// ____/---\____ //// . \\| |// . //// / \\||| : |||// \ //// / _||||| -:- |||||- \ //// | | \\\ - /// | | //// | \_| \---/ | | //// \ .-\__ - ___/-. / //// ___. . /--.--\ . . ___ //// . .___\_|_/___. . //// | | : - \.;\ _ /;./ - : | | //// \ \ -. \_ __\ /__ _/ .- / / //// -.____-.___\_____/___.-____.- //// --- //// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //// 佛祖保佑 永不宕机 永无BUG //////////////////////////////////////////////////////////////////////
返回列表