欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    C++程序设计教程C++程序设计教程课件.ppt

    • 资源ID:3726144       资源大小:2MB        全文页数:82页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++程序设计教程C++程序设计教程课件.ppt

    C+的语句和简单的程序设计,本章讨论C+语言的语句集,主要讲述各种语句的语法、语义,并结合一些较小的应用来讲解语句的用法。,通过由模仿写程序到逐渐能独立地编写一些简单的程序这一过程,初步掌握编程的规范和基本方法。,主要内容:,程序结构顺序、选择、重复三大结构;,C+的各种语句(语法、语义、用例);,程序设计风格、方法与技巧简介。,重点:,程序结构,if语句,各种循环语句,注意:本章的内容重在程序设计实践。,课堂时数:89 学时,上机时数:4学时,课外上机时数:4学时,难点:,if语句的嵌套,三种循环语句的异同点,各种语句和程序结构的综合应用。,课时安排:,2.1 C+的符号系统,主要讨论C+的字符集和标识符的构词规则。,1.C+的字符集,(1)英文字母,AZ,az(必须区分大小写)。,(2)数字字符:09。,(3)运算符,例如:+、-、*、/、%,等等。,(4)标点符号,例如:,、;和各种括号。,(5)其他符号,例如下划线_、美元符号$、井号#等。,C+的字符集是ASCII字符集的子集,包括以下几类字符:,2.标识符,例如:给变量、函数和自定义类型命名。name 变量名 max()max是函数名,标识符是由字符集中的若干个字符构成的“程序单词”,用来标识程序中的各种语法成分,也即给各种语法成分命名。,用途,不能与系统保留字同名;,尽量做到“见名知义”。,组成标识符的字符只能是:字母、数字、下划线;,标识符的首字符不能是数字符,中间不能出现空格字符;,标识符的长度(字符数)是任意的,但一般仅前头31个字符有效;,构词规则,标识符(2),例2-1 AB1,ab1,Rec_Count,RecCount均是合法的标识符。注意AB1与ab1如果同时用在同一个程序中,是两个不同的标识符。,例2-2 1a,%name,$addr,Rec Count均是非法的标识符。,为什么?,实例,标识符(3),3系统保留字,例 2-3 int、float数据类型描述符(也称为类型名)if、for 语句成分描述符。,ANSI C设置32个保留字,ANSI C+在此基础上增加了29个保留字。(P535),保留字是系统定义的特殊标识符(专用词汇)。通常用来作为数据类型描述符(类型名),语句成分描述符等。,2.2 C+的基本数据对象,1 概述,程序运行时所建立和处理的数据称为数据对象。它分为两大类:程序员定义的数据对象和系统定义的数据对象。,程序员定义的数据对象:由程序员通过说明语句显式创建和控制的常量、简单变量、数组、文件等。其中常量和简单变量称为基本数据对象。,系统定义的数据对象:指由虚拟机建立起来,用于运行事务管理的数据对象,例如运行栈(运行期堆栈)、子程序活动记录、文件缓冲区以及内存空闲区表等。,2.数据对象的重要属性,名即指数据对象的名称,是数据对象的外部标记,便于实现“按名存取”。,注意:任何一个变量不可以没有名字。,类型,名,类型是数据对象的基本属性,例如整型、字符型等。,注意:一个确定的数据对象不可以没有类型!,类型、名(称)、位置和值是任何一个数据对象所具有的重要属性。,值,注意:一个数据对象在其生存期中,属性一般不会改变,但绑定是可以动态改变的。,2.数据对象的重要属性(2),位置,位置是一种绑定,是指数据对象所分配到的内存地址。这种绑定可以由虚拟机的存储管理例程改变,因此属于动态绑定。,值是一种绑定,该绑定通常以赋值操作实现,当然其它操作,例如数据对象的输入操作也可以实现值的绑定。,3常量和变量,1)常量,什么叫常量,通常直接用常量的值作为常量的名字。,即指程序运行过程中,其值不会改变的数据对象。,在程序生存期中被永久地赋予固定值的数据对象。,常量的名,例如,整型常量名100表示值为100的常量。,常量和简单变量属于基本数据对象,是程序中最常出现的语法成分。,引入符号常量的目的有以下几点:,例2-4#define Max 10000,或const Max=10000#define pi 3.1415926,或const pi=3.1415926 Max和pi都是符号常量,其名与值是不一样的。,其中,第3点是最重要的。,便于记忆;,便于修改;,增强程序的可读性。,我们还可以用特定的标识符来作为常量的名字,这种常量称为“符号常量”。,常量和变量(2),符号常量,2)变量,程序中,由程序员显式声明的数据对象,其值可以在程序运行过程中通过赋值操作、输入操作进行修改。,即数据对象和值之间的绑定在其生存期中可以改变。,简而言之:程序运行过程中,值可以改变的量(数据对象),称为变量。,常量和变量(3),什么叫变量,例2-5 下面的C+程序段包含着对变量的显式声明和动态赋值。,说明:(1)x,y被声明成整型变量,c1被声明成字符型变量;(2)x和c1通过键盘输入方式被赋值,而y则在赋值表达式中被赋值。,int x,y;char c1;cin x c1;y=x*5;,变量的显式声明,变量的显式动态赋值,例如,例2-5中的x,y,c1都是标识符,它们分别代表不同的变量。,C+程序中,以显式说明的方式来声明变量,称为变量的建立。(参见2.6),变量的命名,3常量和变量(4),用标识符予以命名。,变量的建立,例如,例2-5中的int x,y;是一个变量说明语句,该语句声明了x,y二个整型变量。,int x,y;char c1;cin x c1;y=x*5;,2.3 数据类型概述,1数据类型的定义,数据类型是一个由数据对象以及创建和操纵它们的操作的集合所组成的类。,数据类型是程序设计语言的一个重要概念和重要内容。,本小节,我们仅介绍数据类型的定义、涵义及数据类型概述,有关数据类型的详细内容在第三章讨论。,数据类型的概念是十分抽象的,但我们可以从涵义上去理解它,数据类型有以下三个涵义:,数据类型概述(2),2数据类型的涵义,确定数据的值域(数据取什么值);,规定允许对数据对象施加的运算(操作);,规定数据对象的存储结构和存储方式。,3数据类型的的重要性,每一个语言都有一个原始(标准)数据类型集,此外也应提供定义新数据类型的机制。,数据类型概述(3),一个语言所提供的标准数据类型集是否完善,定义新数据类型的机制是否健全,直接反映出该语言的处理能力。,4C+的数据类型一览,C+提供的数据类型分成基本类型和非基本类型(构造类型)两大类。,基本类型,数据的取值为纯量(单值)。例如整型数据在任何时刻其值都为单个整数。,非基本类型,包括结构类型、指针类型、空类型(void)、类(Class)等。如下图所示:,数据类型概述(4),下图给出C+的数据类型一览:,我们将分三阶段来介绍C+的数据类型,第一阶段先介绍基本数据类型,等掌握了基本编程技术后,进入到较为复杂的数据处理和其它应用时,再进一步讨论非基本数据类型,当进入面向对象编程阶段时讨论类类型。,基本数据类型,4 C+的基本数据类型一览,基本数据类型包括:数值类型(整型、实型)、字符类型、布尔类型、枚举类型等。如下图所示:,数据类型概述(4),整数类型 实数类型 字符类型 布尔类型 bool 枚举类型 enum,2.4 表达式概述,表达式一般用来描述特定计算或特定处理,或两者兼而有之。表达式素有语句的“语法结构砖瓦”之称,是程序设计语言中十分重要的语法。本节仅作简单讨论,有关表达式的详细内容在第四章介绍。,例2-6a=3+5*4;,1实例及其分析,分析:这是一个赋值表达式,它由运算符(=)、左部量(左值)、右部量(右值)三部分构成,右部量通常是一个算术表达式。该表达式先计算右部量,然后将其值传送给左部量,最后、a的值是23。,例2-7if(xy)z=x;else z=y;,分析:(1)if语句中出现了三个表达式,分别是xy、z=x、z=y。,实例及其分析(2),(2)xy是关系表达式,其计算结果作为分支选择条件;z=x、z=y都是赋值表达式,是if语句的两个分支。,2.表达式的定义,表达式是由操作符、数据对象和括号组成的序列,用来描述一个计算。,通俗地说,所谓表达式是由若干数据对象通过操作符连接而成的,用来描述特定计算的式子。,表达式可以看成语句(有时甚至是程序)的语法结构砖瓦。,3.表达式的语法,E E,E:数据对象(运算元素),可以是常量、变量、函数调用、表达式。,:操作符,也即各种运算符,例如算术运算符、关系运算符、赋值运算符等。,语法,实例分析,例2-8 分析下面所给的表达式的结构。(a+b)*(c+d),(1)从表达式的语法可以看出,单个数据对象也可以视为表达式。,(2)表达式的语法具有递归性,体现在表达式中的数据对象又可以是一个表达式,这种递归性提供了由若干个简单的式子构成复杂式子的能力。,分析:(1)这是一个算术表达式 EE1*E2,(2)E1和E2这两个数据对象本身又是表达式:E1(a+b);E2(c+d),表达式的语法(2),例2-8 分析下面所给的表达式的结构。(a+b)*(c+d),注意,4表达式的语义,表达式组合了允许一个语句改变机器状态的基本操作。因此表达式的执行必将改变机器的状态。这是表达式语义的最终表现。,显然表达式的语义与操作有关,也与操作的规则及约束有关,所以表达式的语义涉及以下两个方面:,操作符所描述的操作。操作的结果改变了机器状态,同时也获得了一个值。,表达式执行过程中所要遵循的规则及约束。它们是:约定、求值次序、结合和优先级规则。,例2-9 下面的表达式中包含有不同类型的数据对象,试问如何进行类型转换?float a;a=5/2;,a的值为2(整型),也即a已由浮点型转换为整型。,表达式的语义(2),约定,即类型转换的约定,是指当表达式中出现数据类型不同的数据对象时,应该如何进行类型转换,请看下面的例子:,例如:计算(a+b)*(c+d),是先对(a+b)求值还是先对(c+d)求值?实际上,这对最后的乘积都没有影响。求值次序取决于编译器。,求值次序,表达式的语义(3),是指组成表达式的各运算元素(操作数)的求值次序。,优先级,是指操作符的优先级(也称为算符优先级),例如先乘除后加减,先与后或。,显然,乘除操作符的优先级高于加减操作符。,例2-10 分析下列表达式的执行顺序。d=a+b-c;d=a=3;,加减操作符自左向右结合;,赋值操作符自右向左结合。,结合性,表达式的语义(4),是指当表达式中出现相同优先级的操作符时,对这些操作符执行次序(求值次序)的规定。,5表达式的分类,可以按表达式所含操作符的不同来给表达式分类,通常可以分为以下几种表达式:,我们将在2.14及第四章中系统介绍这些表达式。,2.5 结构化程序设计概述,1.结构化程序设计的基本思想,结构化程序设计方法的精髓可以概括为:,分析、设计和实现均可以采用:“自顶向下、逐步细化和精化”的方法。,具体而言,就是自顶向下,将大功能逐步分解成较小功能、更小功直至最小功能,形成一棵功能树。,例如,可以将“学籍管理”分解成“学生注册”、“成绩管理”、“学籍异动”等较小功能,其中”成绩管理“功能又可以分解为:“成绩登记”、“学分统计”、“成绩查询”等更小功能,“成绩登记”又可以分解成“成绩录入”,“成绩修改”等最小功能。,学籍管理,注册管理,成绩管理,学籍异动,成绩登记,学分统计,成绩查询,成绩录入,成绩修改,成绩删除,在程序实现时,每一个功能(功能树上的每一个结点),都被实现为一个过程或函数,实现可以是自顶向下,也可以是自底向上。,有必要说明的是,即使是采用面向对象方法,类的各个操作的方法代码也离不开上述三种基本结构。因此结构化程序的三种基本结构十分重要,而且贯穿始终。,每个过程或函数的执行部分都是由三种构造块组成的,它们就是结构化程序的三种结构,即顺序结构、选择结构和重复结构。,结构化程序设计的基本思想(2),结构图:执行顺序:,Statement1;Statement2;statement n;,下面程序块就是一个典型的顺序结构:int a;cin a;cout a;,2程序的三种结构,顺序结构,n条语句自上而下排列,并按排列的顺序自上往下逐条执行。其结构示意和执行顺序如下图所示:,结构中包含多个不同的执行部分(分支),结构控制能够通过计算产生条件并根据对条件的判断来选择和执行程序当时所应执行的分支。,程序的三种结构(2),选择结构,通常用if语句或swith语句来实现选择结构,请看下面的例子。,#include#include void main()main()int x,y;cin x;if(x0)y=0;else y=1;cout”y=”yendl;,程序的三种结构(2),结构图(N-S图),Exp:选择分支的条件(表达式),S1,S2:语句集(包含一至多个语句),当条件为真选择并执行s1,否则选择并执行s2。,流程图(Flow chart),(2)比较两个字符串的大小,需要逐一比较两个串的的对应字符(重复进行单个字符的比较)。,(1)计算 s=1+2+3+4+5+6+.100,这是一个重复执行99次加法的算术问题。,在许多应用中,经常会出现动作或运算的重复执行,例如:,程序的三种结构(3),重复结构,结构中含有需要重复执行的程序块(循环体),结构控制能够通过对表达式的计算产生条件并根据对条件的判断来决定是否重复执行该程序块。,main()int i=1,s=0;while(i=100)s=s+i;i=i+1;,重复执行部分,也称为循环体。内部的两个语句重复执行100次,几乎所有的程序语言都提供循环语句,用以构造重复结构,从而可以避免大量语句或表达式的的重复书写。,例2-12 编写一个程序计算s=1+2+3+4+5+6+.100。,这是一种用“当型”循环语句来构造的重复结构,此外也可以用“直到型”或“计数型”循环语句来构造重复结构。,流程图:“当型”循环,表达式:用来作为循环条件,语句集,也即程序的重复执行部分,也称为循环体。,2.6 C+语句概述,习惯地将语句分为五类:控制语句、复合语句、说明类语句、空语句、表达式语句。,C+的语句十分精简,只设置9个语句。并允许由多个语句构成复合语句。,通常又将一些能独立存在的表达式也视为语句。如赋值表达式、函数调用、I/O表达式等。,1 C+的控制类语句概述,C+的控制语句包括:if语句、switch语句、各种循环语句、其它控制语句,控制语句用于实现三种程序结构。,2空语句,;,语法,用途,在程序中,实际上就是一个空行,但必须以分号作为结束。,一般用在if语句的分支中,表示该分支为空。,3复合语句,例如:while(i=100)s=s+i;i=i+1;,表示由多个语句组成的语句块,必须用一对花括号()包围。,用途:复合语句一般用作if语句的分支、循环语句的循环体、函数的函数体。,4表达式语句,下面给出一些表达式语句的例子:,例2-13 下面表达式或函数调用是作为语句使用的:,cin b c;a=b*c;return();,输入流控制表达式输入语句;,赋值表达式赋值表达式语句;,返回函数(return)调用返回语句,C+的一个显著特点是,有些表达式可以独立地出现在语句行上当作语句使用,故称为表达式语句。,存储类别类型名变量名表=初值;,5说明语句,用途,用来给程序员在程序中显式地声明各种变量,也即建立数据对象。,语法,例如:float i,grade100;/该语句声明了两个数据对象,i是浮点类型变量,grade是浮点类型数组。,例2-14 分析下面的说明语句:static int number=0,grade;,类型名,存储类别为:static,变量的数据类型为int,变量名表的元素为:number和grade,其中number的初值为0。,初值,说明语句(2),存储类别类型名变量名表=初值;,存储类别,说明语句中各语法成分的解释,说明语句(3),从说明语句可以看出,该种语句由:存储类别、类型名、变量名表及变量初值表四部分组成。,存储类别类型名变量名表=初值;,指明变量的存储形式,包括变量的存储位置和和生存期。,(1)存储类别,变量的存储位置可以是内存也可以是寄存器;,变量的生存期(作用域),有局部于函数或块,也有伴随程序全程有效的(全局)。,说明语句(4),存储类别类型名变量名表=初值;,C+提供了如下四个 存储类别描述符:,注意:存储类别是任选项,缺省情况下,在函数外部默认为全局,在函数内部默认为“自动”类别。,extern:全局(外部)内存全局数据区。,static:静态(局部或全局)内存静态数据区,auto:自动(局部、动态)运行栈区,register:寄存器变量寄存器,例如:int x,y,z;该语句同时声明了三个整型变量,其名称分别是x,y,z。,说明语句(5),存储类别类型名变量名表=初值;,(2)类型名,指明变量的数据类型,例如int表示整型。(我们将在第三章专门讨论)。,注意,该项也是任选项。,说明语句(6),存储类别类型名变量名表=初值;,(3)变量名表,给出n个相同类型的变量名(n=1),也即允许同时说明多个变量,变量名之间用逗号隔开。,(4)=初值,给出变量的初值,例如unsigned short width=5;,2.7 if语句,if语句也称为条件语句,属于控制类语句,是程序设计中经常使用的语句。,可以说所有的高级语言都提供if语句,几乎每个程序都要用到if语句,可见其重要性和应用的广泛性。,1示例,例2-15 设以60分作为考试的合格线,如果考试成绩60及60分以上为合格,否则不合格。这个极为简单的问题实际上包含着逻辑运算、判断和选择。用if语句可以准确地予以描述:,下面我们通过一个if语句的实际应用来初步认识if语句。,if(grade=60)cout 考试合格n;else cout 考试不合格n;,/成绩大于等于60分,/成绩小于60分,2.if语句的作用,3.if语句的语法,(1)if(exp)statement;,(2)if(exp)statement1;else statement2;,表达式,作为条件,构造选择结构,用来实现程序分支的选择与执行。,if(grade=60)cout 考试合格n;else cout 考试不合格n;,if语句语法的解释,(1)exp:表达式,通常是关系表达式或逻辑表达式,偶而也可以用算术表达式,或其它表达式。其运算结果(0或非0)作为分支的选择条件。,例如:if(grade=60),其中的grade=60是关系表达式,可以描述比较简单的条件。,(2)statement:语句,可以是C+的任何语句,构成if语句的执行分支。statement1是条件成立时应选择的分支,statement2是条件不成立时应选择的分支,if语句的语法(2),if(exp)statement1;else statement2;,else子句为任选部分!,注意事项,if语句的语法(3),(1)语法(1)不包含条件不成立时的分支,可以看出它是语法(2)的特例。如果将语法(2)改为如下格式,即可涵盖语法(1)。,if语句的语法(4),(2)单个if语句(不含嵌套)最多只能设置两个分支,并且每次执行时,二者只能选其一;,注意事项,(3)分支可以仅为单个语句,也可以由多个语句构成。如果一个分支包含多个语句,必须表示为复合语句。,例如:if(ab)temp=a;a=b;b=temp;,注意:该if语句的两个分支都是简单语句。,实例,例2-16 从a,b两个数据中挑选值最大者。,if(ab)max=a;/a大于b else max=b;/a小于等于b,if语句的语法(5),if(ab)temp=a;a=b;b=temp;,注意:该if语句的分支是复合语句。,实例,例2-17 如果a比b大则a,b互相交换。,if语句的语法(6),问题:为什么要使用temp变量?,4.if语句的语义,我们通过分析if语句的执行过程来阐述语句的语义。语义描述可以是文字形式,也可以是框图形式(流程图)。,if语句的语义用文字形式描述如下:,(1)计算exp;,(2)如果exp的值为真(0),也即条件成立,则执行statement1,否则执行statement2(有else子句)。,注意:当表达式的值等于0则条件不成立,反之成立。,我们都知道用文字来描述语义或算法尤其是复杂算法,不但烦琐而且可能会显得不够清晰、不够准确,甚至会出现歧义性。所以通常用流程图或N-S图来描述较为复杂的语义和算法。,if语句的语义(2),(1)判断当前字符是否为小写字母:a=ch=z,例2-18 输入一个字符,判断该字符是否为小写字母,若是则将其转换为大写字母然后输出,否则原样输出。,if语句的语义(3),思路(算法):,(2)小写字母转换成大写:ch-32,理解并掌握了以上两个实现要点,问题便迎刃而解。,#include using namespace std;void main()char ch;cout ch1;if(ch1=a,/输入要转换的字符,/判断是否为小写字母,/将小写字母转换成大写字母并输出,程序:,if语句的语义(4),/将所输入的字母原样输出,该程序有语法错,请问错在哪里?,5.if语句的嵌套,if语句中的statement1或statement2部分出现另一个或另一些if语句。这就构成if语句的嵌套,也称为多重if语句。,if语句的嵌套分为前嵌套和后嵌套两种形式,上面的例子是前嵌套还是后嵌套?,if(x0)if(x10)y=1;else y=0;,/00&x100,if语句的后嵌套,if语句的嵌套(2),if语句的statement2中出现新的if语句,称为后嵌套。形如:,if(e1)s1;else if(e2)s21,后嵌套if语句形如:,例2-19 男性并且年龄45岁以下视为合格,女性并且年龄40岁以下视为合格。if(sex=m,该if语句出现在另一个if语句的else子句中。,问题:如果少掉嵌套的if语句,会出现什么样的结果?,后嵌套多重if语句应用十分广泛,请看下面的例子:,if语句的嵌套(3),S2,if语句的嵌套(4),s21和s22仍可以包含if语句,依此类推,形成三重、四重乃至n重嵌套。,就if语句的后嵌套结构而言,一个else总是可以唯一地配对一个if,所以不存在配对的歧义性问题,因此是一种“好的结构”。,注意:,S1,if语句的前嵌套,if语句的嵌套(5),if语句的statement1中出现新的if语句,称为前嵌套。,if(e1)if(e2)s11;else s2,前嵌套if语句形如:,分析:,例2-20 我们把例2-19的挑选条件改为,男性且45岁以下,女性不限制年龄。试问以下的程序段正确否?if(sex=m)if(age=45)cout 合格男性!n;else cout 合格女性!n;,(2)进一步观察可以看出:语句中,当if和else的个数不等时,if和else有下面两种匹配方式:,(1)if 部分(statement1)包含着另一个if语句,属于前嵌套形。,if(sex=m,方式1:被嵌套的if语句有else子句:if if s11 else s12;,if(sex=m)if(age=45)cout 合格男性!n;else cout 合格女性!n;,s1,方式2:被嵌套的if语句没有else子句:if if s11 else s2;,s1,if(sex=m)if(age=45)cout 合格男性!n;else cout 合格女性!n;,if语句的嵌套(7),显然前嵌套多重if语句存在着if与else配对上的不确定性(歧义性)。也即语句中的else可能与第一个if配对,也可能与第二个 if配对。,为什么?,if(sex=m)if(age=45)cout 合格男性!n;else cout 合格女性!n;,if(sex=m)if(age=45)cout 合格男性!n;else cout 合格女性!n;,if语句的嵌套(7),如果是第一种配对方式,则结果是错误的!,如果是第二种配对方式,则结果是正确的!,请自己画出两种配对法对应的流程图,并加以分析。,解决嵌套if语句的二义性,有两种方法:(1)采用“最近匹配”原则配对。(2)用花括号来强制配对。,所谓“最近匹配原则”是指:在前嵌套的if语句中,尚未配对的else子句总是与其左端距离最近的一个尚未配对的if配对。,if语句的嵌套(7),方法1.采用“最近匹配”原则,if exp1 if exp2 if exp3 s1 else if exp4 s2 else s3 else s4。,1,2,3,可见:匹配顺序是由里向外,自左向右的。,例2-21 请按“最近匹配原则”给下面的前嵌套if语句进行if和else的配对。,if语句的嵌套(8),用分层“锯齿”格式来表达将会使多重嵌套层次结构更为清晰:if exp1 if exp2 if exp3 s1;else if exp4 s2 else s3;else s4;,例2-22 我们在例2-20所给的程序的第一个if中插入一对花括号,则程序改为:if(sex=m)if(age=45)cout 合格男性!n;else cout 合格女性!n;,因为加了一对花括号,等于限制了括号中的if语句是没有else的,所以仅有的一个 else就必须与第一个if配对。这就取代了“最近匹配”规则。,方法2.用花括号来强制配对,花括号可以改变多重嵌套if语句的缺省的“最近匹配”规则。,6if语句的应用,我们将一个十分常见又比较简单的问题作为if语句的用例,主要用来阐明编制程序解决一个实际问题的基本方法和步骤。,例2-23 输入一个百分制成绩(1100分),将其转换成五级记分制成绩。,问题分析,百分制与五分制存在如下的对应关系:,百分制与五分制的对应关系:百分制成绩 五级记分制成绩 60 E 60-69 D 70-79 C 80-89 B 90-100 A,6if语句的应用(2),问题的解决方法,问题的解决方法也就是所谓算法,有多种算法描述工具,例如自然语言、流程图、类程序语言等等。这里我们使用流程图来描述:,#include void main()int grade1;char grade2;cout grade1;if(grade1=60 else,程序,if(grade1=70,问题:if语句嵌套过深,导致程序结构不够清晰,易读性较差。,事实上,本例所涉及的问题属于多分支问题,用下面将要讨论的switch语句来实现会更方便、更直观。也即程序结构更为合理。,

    注意事项

    本文(C++程序设计教程C++程序设计教程课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开