news 2026/4/30 18:38:56

C语言基础 switch分支 三种循环

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言基础 switch分支 三种循环

switch

多分支情况

switch(整形表达式) { case 整形常量表达式1: //5 语句块1; break; case 整形常量表达式2: //6 语句块2; break; case 整形常量表达式3: //7 语句块3; break; default: 语句块n; } 整形表达式 计算下来的结果 ,会和case后面的 整形常量表达式 进行等值比较。 如果值相等则该 case 对应的语句块,就会被执行 ,直到遇到break。 break; 停止,断开。在switch 中,执行遇到break ,意味 switch 分支结束。 default ,可以选。 如果有的话,switch 在匹配的过程中,如果case 都没有匹配成功,则执行default 对应的语句。 一般放在最后。

1) switch 后面必须是一个整形表达式

2) case 后面 整形的常量 ,不能是变量,或表达式

3)switch 的整形表达式 和 case 后面 整形的常量 ,做等值比较。 如果相等执行对应的case。 直到break 停止。 如果都没有匹配中,执行default;

流程框图

循环控制

代码执行的时候,有多次执行同一段代码需求。

事先执行需要运行几次 for

未知执行次数的话 while

循环三要素:

1) 循环控制变量 需要初始化

2) 需要检测循环变量 ,是否继续循环

3)循环中,需要包含控制变量 变化的语句 ++,--

while

1.while的使用

while(表达式) { 循环体; } 表达式 值为一个逻辑值 1 ture 0 fasle 循环体; 代码会执行多次 1 对表达式求值 ,如果为 1(真) ,则执行循环体 。否则 ,循环结束。 2 执行循环体 循环的代码 3 执行 1 循环体 中,需要包含 使用循环慢慢趋势于结束的变量(循环体控制变量,++,--) while(表达式)后 不要加分号。

2.死循环

//循环会一直运行 while(1) { 循环体; }

for

for(表达式1;表达式2;表达式3) { 循环体; } 表达式1 ,变量初始化,或者循环运行起来前,需要初始化的变量 表达式2 ,决定循环是否会继续运行。如果为真,循环执行,否则循环停止 表达式3 ,对循环控制变量,进行改变的地方(++,--) 执行的流程 1.执行表达式1 ,对控制变量初始化 。 只会走一次。 2.对表达式2求值,如果为真,执行循环体。否则结束 3.执行循环体代码 4.执行表达式3, 对控制变量 ++,-- 5.跳 第2步 死循环形式 for(;;) 分号不可以省略 { 循环体; }

双层循环

int i =0; int j = 0 ; for(j=0;j<3;j++) // 外层 { for(i=0;i<5;i++)// 内层循环 { 循环体; } } 外层循环 j++ 一次 ,则内层循环 执行5次 9 * 9 乘法表 int i = 0 ; int j = 0 ; for(j = 1 ;j <=9;j++)// row { for(i=1;i<=j;i++) { printf("%d*%d=%d ",i,j,j*i); } // printf("\n"); puts(" "); }

goto

无条件调整 。

goto 只能在 同一个函数内部 调整。 goto 相当与 汇编中的 JMP指令。

在应用层程序编程中,禁止使用。

在linux 内核编程中, 错误处理 ,用的多。

int main() { int i = 0 ; int sum = 0; //标号 loop: sum+=i; i++; if(i<=10) { goto loop; } else { //goto end } printf("sum is %d\n",sum); end: return 0; }

do ... while()

do { 循环体; }while(表达式); 循环体至少执行一次。 while() 后面的分号,不可省略。否则语法报错。 1 执行循环体 2 表达式求值 ,如果真,则执行循环体。否则,循环终止。 int main() { int i = 0 ; int sum = 0 ; do { sum+=i; i++; }while(i<=10); printf("sum is %d\n",sum); }

循环辅助控制

continue; //继续, 跳过本次循环

1 跳过本次循环

2 在循环过程中,需要屏蔽其中某几次循环

for(i=0;i<10;i++) { if(3==i || 5==i || 7==i ) { continue;// 在循环过程中,i如果是3,5,7 ,直接执行下一次循环 } printf("i is %d\n",i); }
break;//跳出循环,提前结束循环

1 跳出当前循环或switch

2 如果不希望循环继续,调用break

for(i=1;i<10;i++) { if(3==i || 5==i || 7==i ) { break; //提前结束循环 } printf("i is %d\n",i); } printf("end...\n");
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 18:34:24

2026制造业智能工厂方案横向对比与选型建议

综合技术路线、落地能力和行业验证三个维度&#xff0c;中之杰智能在离散制造领域的软硬一体化智能工厂解决方案中展现出差异化优势。其核心在于不把软件和硬件当作两件事来做——通过德沃克OBF智能工厂的“工厂神经中枢”&#xff0c;让ERP、MES等软件系统与AGV、立库、机械手…

作者头像 李华
网站建设 2026/4/30 18:32:36

ScienceDecrypting:如何一键解除科学文库文档的时间限制

ScienceDecrypting&#xff1a;如何一键解除科学文库文档的时间限制 【免费下载链接】ScienceDecrypting 破解CAJViewer带有效期的文档&#xff0c;支持破解科学文库、标准全文数据库下载的文档。无损破解&#xff0c;保留文字和目录&#xff0c;解除有效期限制。 项目地址: …

作者头像 李华