第1章C+基础知识 ·13· els /当expression为假时,执行statement2语句序列 statement2; 3.if.elseif语句 if.elseif语句用于进行多重判断,其语法形式如下: statementl: /当expressionl为真时,执行statementI语句序列 elseif(expression2) /当expression2为真时,执行statement2语句序s列 statement2; else statementn: /当所有条件均为假时,执行statementn语句序列 4.?条件操作符 ?条件操作符可以简化条件表达式的表达形式,其语法形式如下 expression1?expression2:expression3 即表达式expressionl为真时执行expression2的表达式,结果为expression2表达式 的值;否则执行expression3:表达式,结果为expression3表达式的值。例如: x=(a>b)?a:b 相当于: if(a>b) x=a: else x=bi 5.switch语句 switch语句用于测试某一个变量具有多个值时所执行的动作。switch语句的语法 形式为: www.TopSage.com
www.TopSage.com
·14· 第1篇Visual C+基础知识 switch (expression) case constant1: statementl;/当expression与constantl相符时,执行statementl语句系列 break; case constant2: statemen2;/当expression与constant2相符时,执行statement2语句系s列 break; default: statement∥当所有条件都不满足时,执行default后的语句系列 执行该语句,就是当expression的值与某个case的constant相等时,就执行其后面 的语句,如当expression的值与constant2相等时,就执行statement2语句。在switch语 句中也提供了一个类似于else的结构,它就是default标号,如果在switch的所有case 分支语句中都没有一个常量和switch中表达式的值相匹配,这时,如果定义的switch语 句结构中包含有default子句,程序将执行default子句后的程序代码。 1.7.2循环语句 许多程序都需要处理一组相似的对象,C+为此提供了一种重复性操作的语句,叫做 循环语句。它允许程序重复执行某一组语句。 Ct+提供了三种形式的循环结构:while,do.while和for语句,这三种结构最大的 不同在于怎样控制循环。在所有的循环结构中,表达式为非零时为真,而为零时为假。 1.while语句 whilei语句特别适合于处理字符串和其他指针类型,其语法结构如下: while(expresion) statement; 只要expression的值为真,就重复执行statement中的语句。 2.for语句 for语句通常用于处理具有固定长度的数据结构,例如数组等。下面是for循环语句 的语法结构: statement; 其中,expressionl可以是一条声明或表达式,它一般用于对一组变量进行初始化或 赋值。当然,它也可以是一个空语句。expression2用于控制循环,只要expression2的值 www.TopSage.com
www.TopSage.com
第1章C+基础蜘识 5网 为真则循环体中的语句将被执行。expression3在每次循环体结束后执行。它一般用于CO 修改在expressionl中初始化的变量。循环体可以是简单语句也可以是复合语句,如果在 第一次计算expression2的值时就得到了假值,则循环体中的语句一次都不会执行。 3.do.while语句 对于while语句或者for语句来说,循环体中的语句只有在while或者for语句中的 条件为真时,才能被执行,而do.while循环语句则总能保证循环体被执行一次。do. while语句的语法结构如下所示。 do statement; )while(expression) 注意,在do while循环结构中,while语句的括号内指定循环的条件,该句结尾处应 以分号“:”结束。 1.7.3转移语句 转移语句使函数内的程序无条件地改变控制权,即在程序间进行控制转移。C+中 的转移语句包括break,continue和goto语句. 1.break语句 break语句用于强制退出循环语句以及case语句的执行。当程序遇到这一语句后, 将直接执行循环体后面的语句。例如: for(i=0:i<10:i++) (>3) break; /跳出循环,执行cout输出语句 cout"breakendl 上面的程序段,当遇到break语句时,整个循环被终止,开始执行cout<"break"语句。 2.continue语句 continue语句仅仅使当前进行的这一次最内层的循环中止,程序流程转去执行对真 值条件的计算。如果这时循环的真值条件为真,则开始下一次循环,如果为假则中止 循环。 continue语句与break语句不同,它并不中止整个循环的进行,而仅仅中止当前这一 次循环的运行。例如: for(i=0,i<100:i++) i道(>3) continue; /继续执行循环动作 www.TopSage.com
www.TopSage.com
·16 第1篇Visual C+基瑞知识 cout"i="《i<endl, 执行上面的程序段时,当循环变量i大于3以后,就不再执行continue语句后面的输 出语句,而是直接返回循环体的顶部开始执行。 3.g0t0语句 goto语句也能用来跳出循环和switch语句,它的一般语法形式为: g0to语句标号; 其中的语句标号用一个标识符来表示,它的命名规则与命名变量名的规则相同,可以 由字母、数字和下划线组成,其第一个字符必须为字母或下划线。例如,语句“goto Label_ l;”是合法的,而语句“goto1_Label;”则是不合法的。 由于大量使用go语句将会使程序的流程无规律,程序的可读性降低,因此在程序 设计中提倡少用gOt0语句,但也不是绝对不用,一般来说,可以用于以下两个方面: (1)与计语句一起构成循环语句。 (2)从循环体中跳转到循环体外,尤其是在从多层嵌套循环的内层直接跳转到循环 的外层时,可以考虑使用g0to语句。 下面的程序是通过gto语句的跳转和计语句相配合实现循环的例子。 #include<iostream.h void main() int i-1,Sum-0 Loop:if(i<=20) 1/跳转标号 Sum++=i: i计+ goto Loop; 1/跳转到Lo0p标识的那一行 cout"the summary of1201”《Sum《end,/输出结果 上面的程序执行结果为: the summary of 1~20 210 1.8函数 一个大型的程序一般可以分成一系列“单一功能模块”的集合。在C+中,“单一功 能模块”就是函数。一个完整的C+程序一般包含一个主函数和若干个子函数,主函数 可以调用其他的子函数,子函数之间也可以互相调用。利用函数可以大大降低程序设计 的工作量。很多编译系统本身就带有很多预定义的函数,并把它们以库函数的形式提供 www.TopSage.com
www.TopSage.com
第1章C+基础知识 ◆17 给程序设计人员。函数定义的一般形式如下: 类型标识符函数名(形参列表) 函数体 在形参列表中,程序员必须指定每一个参数的数据类型。 在调用函数时,大多数情况下,主调函数和被调函数之间有参数传递的关系。因此, 程序中广泛使用的函数是有参数的函数。在有参数的函数中,定义函数时,函数名后的括 号中的变量名被称为“形式参数”(简称“形参”)。在调用函数时,函数名后面括号中的表 达式称为“实际参数”(简称“实参”)。 熟悉C语言的读者不难了解,函数中的参数可以是变量、数组名和指针等内容,在这 里就不再详细介绍了。 在C+语言中,函数声明允许程序内含有多个名称相同的函数,这就是函数的重载。 有关重载的内容,请参见1.11节的内容。 1.9类与对象 传统的结构化语言都是采用面向过程的方法来解决问题,但在面向过程的程序设计 方法中,代码和数据是分离的,因此,程序的可维护性较差。面向对象程序设计方法则是 把数据及处理这些数据的函数封装到一个类中,类是C++的一种数据类型,而使用类的 变量则称为对象。 在对象内,只有属于该对象的成员函数才可能存取该对象的数据成员,这样,其他函 数就不会无意中破坏其内容,从而达到保护和隐藏数据的效果。 与传统的面向过程的程序设计方法相比,面向对象的程序设计方法有三个优点:第 一,程序的可维护性好,面向对象程序易于阅读和理解,程序员只需了解必要的细节,因此 降低了程序的复杂性:第二,程序的易修改性好,即程序员可以很容易地修改、添加或副除 程序的属性,这是通过添加或副除对象来完成的:第三,对象可以使用多次,即可重用性 好,程序员可以根据需要将类和对象保存起来,随时插人到应用程序中,无需作什么修改。 面向对象程序设计方法提出了一些全新的概念,如类、封装(encapsulation),继承 (inheritance)和多态性(polymorphism)等。 1.9.1类的定义 类(class)是C+的精华,是进行封装和数据隐藏的工具。通过它把逻辑上相关的实 体联系起来,并具备从外部对这些实体进行访问的手段。和函数一样,应用类也是C+ 中模块化程序设计的手段之一。但是,函数是将逻辑上有关的语句和数据集合在一起,主 要用于执行;而类则是逻辑上有关的函数及其数据的集合,它主要不是用于执行,而是提 供所需要的资源。在使用一个类之前必须先定义类,定义一个类的语法格式如下所示: www.TopSage.com
www.TopSage.com