当前位置: 首页 > news >正文

C语言(4)

4.switch

多分支情况

switch(整形表达式)
{

case 整型常量表达式1:

语句块1;

break;

case 整型常量表达式2:

语句块2;

break;

case 整型常量表达式3:

语句块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

#include <stdio.h>

int main()

{

int cost = 0;

int stu = 0 ;

printf("1,幼儿园,100\n");

printf("2,小学生,200\n");

printf("3,初中生,300\n");

printf("4,高中,400\n");

printf("5, tech\n");

scanf("%d",&stu);

switch(stu )

{

case 1:

printf("幼儿园\n");

cost =100;

break;

case 2:

printf("小学生\n");

cost =200;

break;

// 3 ,5 情况 后续处理是一样的

case 5:

case 3:

printf("初中生\n");

cost =300;

break;

default :

printf("其他\n");

cost =400;

}

printf("你花费是 %d\n",cost);

}

循环控制

代码执行的时候,有多次执行同一段代码需求。
for事先执行需要运行几次
while未知执行次数的话

循环三要素:

  1. 循环控制变量 需要初始化
  2. 需要检测循环变量 ,是否继续循环
  3. 循环中,需要包含控制变量 变化的语句 ++,--

while

while 的使用

while(表达式)
{
循环体;

}

表达式的值 是一个逻辑 。 1 ture 0 fasle
循环体;代码会执行多次

1对表达式求值 ,如果为 1(真) ,则执行循环体 。否则 ,循环结束

2. 执行循环体 循环的代码

3. 执行 步骤1

循环体 中,需要包含 使用循环慢慢趋势于结束的变量(循环体控制变量,++,--)
while(表达式)不要加分号

死循环

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

#include <stdio.h>

#include <unistd.h>

int main()

{

#if 0

int sum = 0 ;

int i = 0 ;

while(i<10)

{

printf(" i is %d\n",i);

sum = i+ sum;

++i;

}

printf("0-9 sum is %d\n",sum);

int i = 0 ; // index

// 死循 ctrl+c 停止程序

while(1)

{

printf("%d\n", i++);

sleep(1); // 休眠 1s

}

#endif

int i = 100 ;

while(i)

{

if(0 == i%3 )

{

printf(" %%3 == 0 is %d\n",i);

}

i--;

}

for

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");

http://www.jsqmd.com/news/718222/

相关文章:

  • Chapter 3:Spring AI 并行执行模式(ParallelAgent)
  • 我手写了一个 Java 内存数据库(四):索引引擎、SQL 解析与总结
  • 2026生成式AI搜索优化:GEO监测工具选型与实践
  • 百元键盘怎么选?这三款闭眼入不踩雷
  • 如何用 Web Workers 开启子线程处理复杂的密集型计算
  • Qwen3-4B-Instruct-2507轻量模型一键部署教程:3步完成Ubuntu环境配置
  • Phi-3.5-mini-instruct应用场景:自媒体内容润色、周报提炼、技术博客辅助写作
  • Joy-Con Toolkit完整指南:免费开源工具让你的Switch手柄焕然一新
  • LoRA技术解析:大模型高效微调与部署实践
  • 我手写了一个 Java 内存数据库(三):删除、合并与范围查询
  • Mac Mouse Fix深度技术解析:开源鼠标驱动优化与高级配置指南
  • 摩托车尾箱服务商
  • Flowise开源安全审计:依赖漏洞扫描与SBOM生成实践指南
  • 答辩PPT别熬夜了:我用百考通AI高效搞定毕业答辩
  • 用STM32F103C8T6和HC-05蓝牙模块DIY智能门锁,手把手教你实现手机远程改密码(附完整代码)
  • 源于中国,进击全球:安波福发布“中国定义”战略及多款智能终端解决方案
  • 终极指南:三步搞定网易云NCM加密音乐,实现跨平台自由播放
  • Canlyzer从0-1搭建环境
  • Qwen3.5-9B构建企业知识网络:智能检索与问答系统
  • CentOS 7.6上部署BeeGFS 7.2.4:从单节点到双节点高可用集群的完整避坑指南
  • 魔兽争霸3闪退修复终极指南:WarcraftHelper让你的经典游戏重生
  • 想把你的ASIC设计塞进FPGA里跑起来?手把手拆解硬件仿真工具的前端“黑盒”:从RTL代码到门级网表
  • B站会员购抢票终极指南:如何用开源工具轻松抢到心仪门票
  • 论文初稿AI率90%怎么救?4步实操教你一次性降到10%以下(附工具测评)
  • 探索魔兽争霸新纪元:WarcraftHelper如何让经典游戏焕发新生
  • 2026 年 7 款主流语音转文字工具横评:技术会议场景实测与选型指南
  • 多功能老年护理实训室满足多元实训需求
  • Ubuntu 22.04 下 VASP 5.4.4 保姆级编译指南:从依赖库到并行测试
  • ARM浮点异常处理机制与嵌入式实践
  • Degrees of Lewdity中文汉化完整指南:从下载到流畅游戏的终极教程