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

基本控制结构2

顺序结构

程序按照语句的书写次序顺序执行。

选择结构

判断选择结构又称条件分支结构,是一种基本的程序结构类型。

在程序设计中,当需要进行选择、判断和处理的时候,就要用到条件分支结构。

条件分支结构的语句一般包括if语句、if–else语句、switch–case语句。

if语句在二选一的条件下,Switch则是在多选一的条件下。都是对条件表达式进行判断,针对不同结果,决定要执行的语句。

switch语句(多分支)

switch(表达式)

{

case 常量表达式1: 语句组1; break;

......

case 常量表达式n: 语句组n; break;

default: 语句组n+1;

}

switch语句的执行过程:

①先求出表达式的值;

②将表达式的值依次与case后面的常量表达式值相比较,若与某一常量表达式的值相等,则转去执行该case语句后边的语句序列,直到遇到break语句或switch语句的右花括号为止。

③若表达式的值与case语句后的任一常量表达式的值都不相等,如果有default语句,则执行其后边的语句序列。如果没有default语句,则什么也不执行。

循环结构

C++提供了3种循环语句:for语句、while语句和do-whi1e语句。

在循环语句中,重复执行的操作叫做循环体。循环体可以是单条语句、块语句甚至是空语句。

while循环

while循环有两种循环控制语句实现,while语句和do…while语句。

while语句

格式: while(条件表达式) 语句

while(conditon) //0为false,非0为true { statement(s); }

while语句执行过程为:先计算条件表达式,如果该表达式的值为非零,则执行循环体的语句;

否则退出循环,不执行循环体,而执行该循环语句后面的语句。

也就是说,当循环条件为真时反复执行循环体。因此,while循环也被叫做“当”型循环。

do while 语句

格式:do 语句 while(条件表达式);

do…while语句执行过程为:先执行循环体后判断条件表达式的值,若表达式的值为真则反复地执行循环体,直到表达式的值为假才退出循环。

因此,do…while语句也被叫做“直到”型循环。

区别:在一定条件下,while循环可能一次都不执行,而do…while循环在任何条件下都至少要执行一次。

for循环

格式:for(表达式1;表达式2;表达式3) 语句

就是:for( 循环变量赋初值;循环条件;循环变量增值) 循环体

for是关键字,语句为循环体,它可以是一条语句,也可以是复合语句,还可以是空语句。

for(init;conditon;increment

)//0为false,非0或什么也不写为true { statement(s); }

for循环语句的执行过程: ① 计算表达式1的值。 ② 计算表达式2的值,并进行判断,如果表达式2的值为0(false)则退出该循环,执该循环体后面的语句; 如果表达式2的值为非0(true)转(3) 。 ③ 执行循环体的语句。 ④ 计算表达式3的值。 ⑤ 转 ②

跳转语句

提供:三个转移语句:break语句、continue语句和goto语句。

主要用于改变程序中语句的执行顺序,使程序从某一语句有目的地转移到另一语句继续执行。

break语句

break语句的功能是:中断所在循环体或switch...case语句块,跳转本层循环体外。

continue语句

continue语句的作用是跳过本次循环的其它语句,直接进入下一次循环。

continue语句只能用在循环语句的循环体内。在循环执行的过程中,如果遇到continue语句,程序将结束本次循环,接着开始下一次的循环。

goto语句

格式: goto 语句标号;

程序跳到语句标号位置继续执行。语句标号属于标识符,格式:语句标号: 语句

其中的语句可以是任意语句,如:{、 while()、 for()...等。

goto语句的使用限制在一个函数体内,即goto语句只能在一个函数范围内进行语句转移。在同一函数中,语句标号应该是唯一的。

http://www.lryc.cn/news/450082.html

相关文章:

  • php 平滑重启 kill -SIGUSR2 <PID> pgrep命令查看进程号
  • 实时美颜功能技术揭秘:视频美颜SDK与API的技术剖析
  • word2vector训练代码详解
  • Python的风格应该是怎样的?除语法外,有哪些规范?
  • net core mvc 数据绑定 《1》
  • python为姓名注音实战案例
  • MATLAB中的艺术:用爱心形状控制坐标轴
  • 基于mybatis-plus创建springboot,添加增删改查功能,使用postman来测试接口出现的常见错误
  • Java:Object操作
  • Java-并发基础
  • 速盾:网页游戏部署高防服务器有什么优势?
  • 【从0开始自动驾驶】ros2编写自定义消息 msg文件和msg文件嵌套
  • docker 部署 Seatunnel 和 Seatunnel Web
  • 【易上手快捷开发新框架技术】nicegui标签组件lable用法庖丁解牛深度解读和示例源代码IDE运行和调试通过截图为证
  • 从HarmonyOS Next导出手机照片
  • [Docker学习笔记]Docker的原理Docker常见命令
  • 【ESP 保姆级教程】小课设篇 —— 案例:20240507_esp01s+UNO的智能浇水系统
  • 如何设置MySQL分布式架构主键ID,为什么不能使用自增ID或者UUID做主键?
  • 服务器虚拟化详解
  • 医疗陪诊APP开发实战:从互联网医院系统源码开始
  • jenkins 构建报错ERROR: Error fetching remote repo ‘origin‘
  • 初识C#(三)- 数组
  • 黑马智数Day3
  • 【Java】再一次踩了整数溢出的坑
  • Windows开发工具使用技巧大揭秘:让编码效率翻倍的秘籍!
  • CSS外边距
  • C++ set,multiset与map,multimap的基本使用
  • 评估潜力无限:解读自闭症患者的工作能力评估
  • js 实现视频封面截图
  • Hadoop FileSystem Shell 常用操作命令