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

C语言-分支语句和循环语句

目录

一,分支语句和循环语句的分类:

二,分支语句

1,if

2,switch

三,循环语句

1,while循环

2,for循环

3.do……while循环

4,goto语句

四,练习实例

1,n的阶乘

2,计算1!+2!+……+n!

3,在一个有序数组内查找具体的某个数字n(二分查找)

4,演示多个字符从两端移动,向中间汇聚

5,演示用户登录场景

6,猜数字游戏


一,分支语句和循环语句的分类:

C语言的分支语句包含if,switch。循环语句包含while,for,do while,goto语句。

二,分支语句

1,if

分支语句if有三种形式:

1,if(表达式)+语句;

2,if(表达式)+语句1 + else-语句2;

3.if(表达式)+语句1 + else if(表达式)+语句2 + else-语句3

//3,满足第一个if则执行语句1,不满足第一个满足第二个则执行语句2,都不满足执行语句3

2,switch


练习举例:

三,循环语句

1,while循环

2,for循环

表达式1:初始化部分,用于初始化循环变量

表达式2:条件判断部分,用于判断循环时候终止

表达式3:调整部分,用于循环条件的调整

例子:

输出结果为1,2,3,4,6,7,8,9,10

对比while

//当i==5时,中断导致i不能增加,一直为5;陷入死循环

输出结果为:1 2 3 4 死循环

建议:1,不可在for循环体内修改循环变量防止for循环失去控制

2,表达式2不建议用“<=",”>="的写法,尽量用“<"或">"。

for循环的四个变种:

1,

输出结果为:hehe 死循环

//分析:for循环的判断部分(表达式2)省略意味着for恒成立

2,

结果:9个hehe

3,

打印结果:三个hehe

结果分析:i,j 都没有赋值,导致导致第一次第二层的for循环执行3次后j==3 不小于3第二次的三次for循环无法执行

4.

结果:2个hehe

3.do……while循环

特点:do……while循环至少会执行一次,故不常用

例子:

结果:2~11没有5

4,goto语句

goto语句并不常用,最常用的用法是终止程序在某些深度嵌套的结构的处理过程。

例如:一次跳出两层或多层循环

含义:goto语句可以实现跳转

例子:

执行到goto可以直接跳出三层循环到error

四,练习实例

1,n的阶乘

2,计算1!+2!+……+n!

3,在一个有序数组内查找具体的某个数字n(二分查找)

4,演示多个字符从两端移动,向中间汇聚

5,演示用户登录场景

6,猜数字游戏

7,最大公约数

1,暴力枚举法求解

2,辗转相除法求解

8,将三个整数按从大到小输出

9,1到 100 的所有整数中出现多少个数字9

10,计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值

11,求10 个整数中最大值

12,九九乘法表

13,变种水仙花数

妙用:sum +=(i/j) * (i%j);

通过for循环,让j每次变成原来的十倍,再在每次循环中对五位数每次取整和取余

五,补充

1,else语句总是和它的对齐的if语句匹配(x)

解析:若连续写两个if——else 语句第一个if 不会和已经对齐第二个if——else中的else进行匹配。

else只会和最近的if进行匹配。(就近原则)

2,while循环中条件表达式的执行次数总是比循环体的执行次数多一次

因为当条件不满足时条件表达式执行了一次,但是由于不进入循环内部,故不执行循环体。

3,BUG

屏幕报错:stack around the variable '数组名' was corrupted.(变量"数组名“周围的栈已损坏 )

错误原因:数组越界访问,写入数据超出数组分配的内存空间。

例:arr[1] = {0};

此时又利用scanf向arr中输入了个数超过1的各种数,就会出现上述报错。

http://www.cnnetsun.cn/news/3524650.html

相关文章:

  • Web安全五大漏洞攻防实战与面试指南
  • 重新定义Windows显示管理:SetDPI颠覆性技术揭秘与实战应用
  • STDF Viewer终极指南:如何5分钟完成半导体测试数据分析
  • LocalVocal:在OBS中实现完全离线的语音转文字与实时字幕
  • 存货周转天数居高不下如何改善?存货周转天数拆解分析技巧
  • FPGA与PC间高速通信:基于Xilinx-FPGA-PCIe-XDMA-Tutorial的MPEG2编码器实现
  • 145.2026年国家级科研痛点:航空发动机试车台高精度推力测量与振动控制
  • 数据工程师、分析师、科学家:真实项目中的角色分工与协同逻辑
  • Steam游戏自动破解器:终极离线游戏启动解决方案
  • AI模型功能完整度对比:98%工程师忽略的7个关键能力缺口,你选的模型达标了吗?
  • 三步搞定!国家中小学智慧教育平台电子课本下载终极教程
  • systemd-docker 完全配置教程:从基础安装到高级 cgroup 控制 [特殊字符]
  • 终极AI视觉对话模型:mlx-community/gemma-4-31b-it-5bit完全指南
  • 电力场景高空作业危险识别安全带佩戴规范检测数据集VOC+YOLO格式359张4类别
  • CANN启航营深度解析:标准化目录结构如何提升作品管理效率
  • UE4SS终极指南:10分钟掌握Unreal Engine游戏深度定制技巧
  • Anatole主题自定义开发指南:从CSS样式到JavaScript扩展的完整教程
  • 扶贫助农系统设计与实现开题报告
  • gemma-4-26b-a4b-it-5bit的MoE架构解析:128专家混合与8激活专家的设计原理
  • 深度解析UI-TARS视觉语言模型桌面应用:掌握AI驱动的GUI自动化核心技术
  • Neurosynth终极指南:3步掌握脑成像元分析的完整教程
  • LLaDA2.2-flash推理速度优化:如何实现519 TPS吞吐量的完整技术指南
  • 全栈独立产品安全的纵深防御架构:从前端到数据库的多层防护体系
  • PEunion部署指南:在不同环境下的最佳实践
  • 064、AE自动曝光:测光策略与场景自适应控制
  • Incident-Response-Powershell脚本架构解析:从基础收集到高级取证的技术实现
  • AI虚拟导购训练数据集构建秘籍(含12类真实对话标注规范+金融/美妆/3C行业专属语料包)
  • AXI总线深度解析:Xilinx-FPGA-PCIe-XDMA-Tutorial中数据传输的核心原理
  • 深度解析Laguna架构:5bit量化如何实现21GB磁盘占用与高性能的完美平衡
  • Viewport 单位的陷阱与替代:svh、lvh、dvh 的动态适配策略