您好,欢迎访问三七文档
C++ProgrammingC++的流程控制语句第4章C++程序是由各种语句构成的,语句可以分为两类:一类用于描述计算机执行的操作运算,称为操作运算语句;另一类用于控制操作运算的执行顺序。本章在介绍C++的各种操作运算语句的基础上,重点讲述流程控制语句,包括条件语句、switch语句、循环语句。C++语言的语句和程序结构选择结构语句循环结构语句控制执行顺序的语句程序举例C++Programming本章学习要求熟练掌握if语句和switch语句的使用,会在程序中利用它们实现单分支或多分支控制。熟练掌握while,do...while和for这三种循环语句的结构和执行过程,会在程序中利用它们实现单重或多重循环控制。掌握continue语句和break语句的作用。C++ProgrammingC++语言的语句和程序结构C++语言的语句概述程序的三种基本结构4.1C++ProgrammingC++语言的语句概述C++程序由数据描述和数据处理两部分构成。数据描述主要定义具有特定内涵的数据结构。数据处理的任务是对所提供的数据进行加工处理,它是通过具有各种不同功能的语句来实现的。C++中的语句可归纳如下六类:表达式语句函数调用语句空语句复合语句注释语句流程控制语句4.1.1C++Programming表达式语句在表达式的后面加上一个分号,就构成表达式语句,它是程序中最常见的一种语句形式。其格式为:表达式;比如:a=4;a=1,b=2,c=3;a+b;!a||b&c;sum=sum+1;C++Programming函数调用语句在函数调用之后加一个分号“;”就构成函数调用语句。例如:sin(2);其实“函数调用语句”也是属于表达式语句,因为函数调用也是属于表达式的一种,只是为了便于理解和使用,把“函数调用语句”和“表达式语句”分开来说明。C++Programming空语句只由一个分号构成的语句。比如:a+2;;在表达式语句”a+2;”之后的语句就是空语句。空语句可以看成是表达式语句的特殊情形,一般情况下它是不起任何作用的,因此为了程序的紧凑,不应出现不必要的空语句。C++Programming复合语句把一个语句序列用{}括起来,就构成了复合语句,又称为块语句或语句块。例如:{sum=sum+1;i=i+1;}复合语句在语法上相当一个语句,因此它可以出现在允许语句出现的任何位置。复合语句可以嵌套,即在复合语句中还可以有其它复合语句。C++Programming注释语句注释语句在程序中的作用是对程序进行说明或解释,目的是为了增加程序的可读性和可理解性。在程序编译过程中,注释语句是作为空语句处理的。C++中,有两种类型的注释语句:一种是用注释符“//”。从注释符“//”到它所在行的行尾之间的所有字符都被作为注释语句处理。这种注释方法在前面已出现多次。另一种是利用一对注释符:“/*”和“*/”。在“/*”和“*/”之间的文字都被作为注释处理,这种方法一般使用于有多行注释信息的情况。C++Programming流程控制语句流程控制语句主要用来控制程序的执行过程和顺序,从而使C++语言获得更强的编程手段和编程能力。C++语言中,除了上述六中类型的语句外,还有另一种语句——说明语句,包括常量说明语句和变量说明语句。C++Programming程序的三种基本结构C++语言在按顺序执行的基础之上,采用了一些可以改变执行顺序的结构,主要包括:分支结构、循环结构,另外还定义了一些语句,如break、continue等。顺序结构分支结构循环结构4.1.2C++Programming顺序结构C++Programming分支结构C++Programming循环结构C++Programming选择(分支)结构语句构成分支结构的分支结构语句有两种:一种是条件语句,另一种是switch语句。这类语句的共同特点是:根据给定的条件决定下一步的行为。条件语句switch语句4.2C++Programming条件语句单选条件语句二中择一条件语句嵌套条件语句If条件语句的几点说明If语句的嵌套4.2.1C++Programming单选条件语句格式:if(表达式)语句其中表达式可为任一合法的表达式,该表达式为条件语句的判断条件,其值决定了是否执行其后的语句部分。注意,该表达式必须用括号括起来。语句可以是六种语句中的任一语句,通常称之为内嵌语句,它与if一起构成了单选条件语句。【例4.1】输出两个数中较大者C++Programming【例4.1】输出两个数中较大者#includeiostream.hvoidmain(){intx=3,y=2;cout”x与y中的最大者为:”;if(xy)coutx;//Aif(x=y)couty;//B}C++Programming二中择一条件语句格式:if(表达式)语句1else语句2其中表达式、语句1、语句2的要求与含义与单选条件语句一样其执行流程为:先计算表达式的值,如果不等于0,则执行语句1;否则,执行语句2。因此,不管表达式的值如何,两个内嵌语句语句1和语句2中有一个而且只有一个得到执行。例如可将例4.1改为:if(xy)coutx;//Aelsecouty;//BC++Programming嵌套条件语句格式:if(表达式1)语句1elseif(表达式2)语句2elseif……else语句n语义:从上到下依次计算表达式i的值,直到某个表达式k的值不等于0,则执行相应的语句k;如果所有表达式都等于0,则执行语句n。它在语句1、…、语句n选择一条且只选择一条执行。【例4.2】嵌套条件语句的应用C++Programming【例4.2】嵌套条件语句的应用#includeiostream.hvoidmain(){intx,y;cout”输入x:”;cinx;if(x800)y=500;elseif(x700)y=600;elseif(x600)y=700;elseif(x500)y=800;elsey=0;cout”相应的y为:”yendl;//A}C++ProgrammingIf条件语句的几点说明if后面的表达式通常为逻辑表达式或关系表达式。表达式必须放在括号中。例如:if(a==b&&c==d)cout“a=b,c=d”;if和else后的语句部分必须有一个语句,可以是复合语句,也可以是单个语句,还可以是空语句,但不能为空。下面的条件语句就是错误的:if(a0)//错误,因为if的内嵌语句为空elsecout-a;如果有多个语句的话,则必须用大括号{}括起来,构成复合语句。例如else语句不能单独使用,必须与if语句配对使用。C++Programmingif(a0){a++;couta;}如果省去该大括号,则就有不同的结果if(a0)a++;couta;C++ProgrammingIf语句的嵌套if和else两个关键字后的“语句”可以是任何合法语句,当然也可以是if语句,称这种情形为if语句的嵌套。对于嵌套的if语句,必须注意if和else的匹配问题,为了不引起混乱,在C++中规定else总是与它前面最近的if配对。如果if数目与else数目不一样,程序设计者最好加上适当的花括弧“{}”来确定配对关系。例如【例4.3】读入3个数,输出绝对值最大者【例4.4】计算分段函数C++Programmingif(a2){if(a10)cout”a在2~10之间!”endl;}//Aelsecout”a不小于2!”endl;A行中的{}限定了内嵌if语句的范围,从而else与第一个if配对。若A行中省去大括号{},则程序变为:if(a2)if(a10)//Bcout”a在2~10之间!”endl;elsecout”a不小于2!”endl;//C这时else与第二个if配对,从B行到C行之间的二择一条件语句为第一个if语句的内嵌条件语句。C++Programming【例4.3】读入3个数,输出绝对值最大者#includeiostream.h#includemath.hvoidmain(){floata,b,c,max;cinabc;cout”a=”a”,b=”b”,c=”cendl;if(fabs(a)=fabs(b)&&fabs(a)=fabs(c))max=a;elseif(fabs(b)=fabs(a)&&fabs(b)=fabs(c)max=b;elsemax=c;cout“a,b,c中绝对值最大的数为”maxendl;}C++Programming【例4.4】计算分段函数方法一:利用嵌套条件语句方法二:利用条件语句的嵌套y=-1(x0)0(x=0)1(x0)C++Programming方法一:利用嵌套条件语句#includeiostream.hvoidmain(){intx,y;cinx;if(x0)y=-1;elseif(x==0)y=0;elsey=1lcout“x=“x“,y=“yendl;}C++Programming方法二:利用条件语句的嵌套if(x=0)if(x0)y=1;elsey=0;elsey=-1;C++Programmingswitch语句switch语句为分支结构语句的另一种形式,在功能上与嵌套条件语句类似,都是多选择(多分支)语句,即根据给定的条件,选择执行其中某一个分支中的语句序列。switch语句的一般格式switch语句语义【例4.6】switch语句的应用使用switch语句时应注意的几点【例4.7】输入的年、月,判断该月的天数4.2.2C++Programmingswitch语句的一般格式switch(表达式){case常量表达式1:《语句序列1》《break;》case常量表达式2:《语句序列2》《break;》…case常量表达式n:《语句序列n》《break;》《default:语序列句n+1》}C++Programmingswitch语句语义先计算switch控制表达式的值,将该值与每个case分支中的常量表达式的值进行比较,如果相等,则执行该分支后面的语句序列,当执行到break语句时退出该switch语句,否则一直执行下去;如果控制表达式的值与每个case分支中的常量表达式的值都不相等,则执行default分支中的语句序列;如果既没有匹配的case,又没有default分支,则不执行该switch结构中的任何语句。C++Programming【例4.6】switch语句的应用对学生成绩进行如下分类:‘A’或’a’等:90-100分;‘B’或’a’等:80-89分;‘C’或’a’等:70-79分;‘D’或’a’等:60-69分;‘E’或’a’等:60分以下。程序代码C++Programming使用switch语句应注意的几点每个case常量表达式值必须互不相同,否则就会出现错误,例如switch后控制表达式必须是整数、字符或枚举类型的变量或常量,每个case分支后的常量表达式必须是由字面常量、宏定义的常量、const常量构成的表达式,其值必须是整数、字符或枚举类型的常量。每个case分支只能判别一个常量。例如switch结构的执行部分为由多个case分支及可缺省的default分支组成的复合语句,因此应放在大括号内,即switch语句下面的大括号不能省。Switch语句允许嵌套,即各分支语句中可以有其它的分支语句。C++Programming【例4.7】输入的年、月,判断该月的天数分析:根据历法,闰年2月的天数为29天,其它年份2月为28天。闰年是指:年份能被4且不能被100整除,或者年份能被400整除程序代码C++Program
本文标题:C 的流程控制语句
链接地址:https://www.777doc.com/doc-3152569 .html