




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章 让C+程序听话控制语句 在前一章学习了常用运算符和表达式,及运算符的优先级 和结合性。本章将介绍C+提供的丰富的控制语句,及其构 成结构化程序设计所需要的3种基本结构:连续结构、选择 结构和循环结构。本章主要涉及到的知识点如下所述。 表达式与空语句:知道什么表达式语句,什么是空语句。 条件选择语句:知道如何用条件选择语句构成程序的选择 结构。 循环语句:知道如何用循环语句构成程序的循环结构。 多重选择语句:知道其和条件选择语句的异同。 转向语句:知道如何根据要求,适时的让程序转向。 各种语句的嵌套:知道如何把各种语句进行嵌套。 6.1 构成C+程序的基本语句 和其他高级语言一样,C+的语句也是用来向计算 机系统发出操作指令的。这就好像练队列操时的 “向左转”、“向右转”、“稍息”、“立正” 等一系列口令(即语句)。有了这些口令大家才 能走出整齐的队列。一条基本语句经过编译后, 将产生几条机器指令。为实现特定功能的程序一 般又包含若干条基本语句。下面笔者将向大家讲 解构成C+程序的基本语句。 6.1.1 表达式语句与空语句 在一个C+程序中有许多表达式。有由算术运算符组成的算术表达式、由 赋值运算符组成的赋值表达式、由位运算符组成的位运算表达式等。例如 : x=x+3/算术表达式 a=7*bb- d|c+a)才能成为一个表达式语句。如下这些才是真正的表达式 语句,而不是表达式。 x=x+3;/赋 值语句 a=7*b y=3,b=5,a/54; a+;b-; d|c+a/位 运算语句 6.1.2 复合语句 顾名思义,复合语句就是由两条或者两条以上的语句组成 ,并由一对花括号()包含起来的语句。但在语法意义 上其相当于一条语句,所以其又被称为块语句。含有一条 或者多条说明的复合语句称为分程序,也叫块结构。如代 码6.1就一个复合语句组成的分程序。 代码6.1 分程序示例 /块语句开始 int i = 1; int n = 3; n=i+n; cout3) couty? 3:5.5; 如果xy为真,则条件表达式的值为3.0。因为5.5是实数型,比整 数型精度更高,所以整个表达式的值为3.0,而不是3。 6.3 不怕重复的工作者循环语句 众所周知,计算机受程序的控制,能周而复始地进行重复 性的工作,是什么让其能够有这样的能力呢?其实就是程 序中的循环语句在起作用。循环语句相当于操场上的长跑 ,当我们围操场跑完一圈(执行语句一次),如果没有达 到规定的路程,那么我们还将重新跑一圈(再次执行相同 语句一次),直到跑到规定的路程才能结束(即循环结束 )。在C+中,循环语句分为3种: for循环语句。 while循环语句。 do-while循环语句。 这些循环语句各有其独自的特点,根据不同的需要进行选 择。其共同的特点是根据循环条件来判断是否执行循环体 中的语句。在许多情况下,其也是可以互相替代的。下面 笔者将详细介绍这三种循环语句。 6.3.1 当型循环while 在循环语句中,while循环是结构最简单的循环语句,用关键字while来声 明。while单词英文意思就是“当就”,所以也称while循环为当型循 环。其声明格式如下: while (条件) 语句 意思是“当”条件为“真”时,就执行“语句”。“条件”就是一个表达 式,通过计算该表达式的值,来决定是否执行“语句”。而“语句”就是 循环的循环体,可以是一条语句,也可以是复合语句。 当型循环的执行流程为:先计算出“条件”中的表达式的值,如果值为真 (非0),则执行循环体,即语句;如果值为假,则退出循环并执行循环 后面的语句。执行完一次循环体后,再次计算“条件”中的表达式的值, 如果其值仍为真(非0),则再次执行循环体,直到“条件”中的表达式 的值为假(0),退出循环执行后面的语句。while循环语句执行流程如图 6.8所示。 6.3.2 当型循环的兄弟do-while 当型循环while语句在C+语法中还有一个“兄弟”,其虽然功能和while 是一样的,但从程序的执行流程上还是有一定的差别的,这就是do-while 循环。声明格式如下: do 语句 while (条件); 其中,do和while是关键字。其和while语句不同的是,do-while是属于先 斩后奏型的,其是先执行一次“语句”即循环体,然后计算“条件”中的 表达式的值,如果其值为真(非0),再次执行“语句”,如果其值为假 (0),退出循环,执行循环后面的语句。do-while循环语句执行流程如 图6.10所示。 6.3.3 循环语句for 循环语句中,除了前面两种外,还有一种循环语句就是C+ 中最常用到、形式最多、功能最强的for循环语句。其用关 键字for进行声明。其标准的声明格式如下: for (表达式1;表达式2;表达式3) 语句 其中,各表达式中间用分号(;)分隔。一般情况下,表达 式1用来给循环变量初始化,表达式2用来判断循环是否结 束的条件,如是该表达式为真,则执行循环体;否则退出 循环。表达式3用来作为循环变量的增加或者减少运算。 for语句的执行流程如下: (1)计算表达式1的值,一般是赋值、初始化或者空表达 式。 (2)计算表达式2的值,判断是否执行循环体,如果其值 为0,则退出循环,执行循环后的语句,否则执行一次循环 体。 (3)计算表达式3的值,即改变循环变量的值。 (4)计算表达式2的值,并判断是否执行循环体。 6.3.4 省略表达式1的for语句 省略表达式1的for语句应该在for语句之前给循环变量赋初值,但 分号不能省略,还是来计算1100中单数之和,如代码6.10所示 。【代码参考:光盘的源代码C06chap9.dsp】 代码6.10 省略表达式1的for语句 01#include 02void main() 03 04int n = 1, sum=0; /初始化循环变量n 05for(;n 02void main() 03 04int n = 0, sum=0; 05for(n=1;n+=2) /省略表达式2 06 07sum+=n; 08 09cout 02void main() 03 04int n = 0, sum=0; 05for(n=1;n 02void main() 03 04int n = 1, sum=0;/初始化循环变 量n 05for(;n 02void main() 03 04int n = 1, sum=0; 05for(;)/没 有表达式的for语句 06 07sum+=n; 08 09cout 02void main() 03 04int n, sum; 05for(sum=0, n=1;nb?1:0 (6)下列关于循环体的描述中,( )是错误的。 A 循环体中可以出现break语句和continue语句 B 循环体中还可以再出现循环体 C 循环体中可以出现IF语句 D 循环体中不可以出现switch语句 (7)下列关于break语句的描述中,( )是错误的。 A break语句可用于循环体内,其将退出当前循环体 B break语句可用于switch语句中 C break语句可用于if语句中,其将退出if语句 D break语句在一个循环体中可以出现多次 (8)下列关于switch语句的描述中,( )是正确的。 A 在switch语句中,default子句可有可无 B 在switch语句中,每个case子句必须有一个break语句 C 在switch语句中,default子句只能放在最后 D 在switch语句中,case子句后面的表达式可以是两个值 6.9 小测试 二、问答题 (1)C+中提供了哪几种常用语句? (2)什么是表达式语句,其与表达式的区别? (3)什么是空语句?什么是复合语句?什么是块程序? (4)条件语句和开关语句的格式是怎么样的? (5)C+提供了哪几种循环语句?可以相互替代吗?可以相互嵌套吗? (6)break和continue语句在循环体中的区别? 三、编程题 (1)求100内所有奇数之和。 (2)接收用户输入的两个正整数m和n,求其最大公约数和最小公倍数。 (3)在屏幕上输出所有1000以内的“水仙花数”,所谓的“水仙花数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一脉心香爱亦美丽2000字15篇范文
- 秋天你好初二作文7篇范文
- 农村电商与农产品进城合作框架合同
- 网络平台项目合作诚意金缴纳及解约合同
- 生态农业示范区场地租赁与绿色农产品生产合同
- 寓言故事中的道理:狼和小羊教学教案
- 智能交通停车解决方案服务协议
- 2025年城市智能照明系统升级项目照明验收检测报告
- 2025年中国电动升降货物梯行业市场规模及投资前景预测分析报告
- 消防救援站培训视频课件
- 九年级中考语文试题八套(练习版)
- 香港应聘简历模板
- 床垫订购合同协议
- 2025年广东广州市凤凰山隧道建设有限公司招聘笔试参考题库附带答案详解
- 动脉血气标本采集并发症预防及处理课件
- 中国粮食面试题及答案
- 酒小二管理制度
- 2025年全民国家安全教育日主题培训课件
- 植物分子育种技术-全面剖析
- 人教部编版二年级语文下册 课课练-23《祖先的摇篮》
- 中考书法三套试题及答案
评论
0/150
提交评论