首页 理论教育C语言程序设计基础:复合语句的应用

C语言程序设计基础:复合语句的应用

【摘要】:复合语句的构成形式如下:C程序设计中,描述控制结构中多条C语句才能完成的功能时,就需要使用复合语句。在C程序中,需要使用复合语句的地方必须使用复合语句的形式,否则程序在语法上可能检查不出任何错误,但程序运行的结果与程序设计者的期望会相去甚远。C语言中规定,复合语句中也可以定义变量,这方面的知识涉及变量的作用范围问题,我们将在“变量的作用域”章节中予以讨论。

在C语言中,控制结构的语句部分在语法上都只能是一条C语句。但在对实际问题处理的应用程序中,有可能遇到需要多条C语句来描述的处理过程。为了满足这种在语法结构上只能有一条语句,而功能的实现又需要多条语句的要求,C语言提供称为复合语句的语句块对这种要求进行支持。

复合语句是用一对花括号“{}”将若干条C语句括起来形成的语句块,在语法上作为一条语句考虑。复合语句的构成形式如下:

C程序设计中,描述控制结构中多条C语句才能完成的功能时,就需要使用复合语句。

【例3.3】 从键盘上输入三角形的三边的边长,若它们能构成一个三角形,则输出其面积。

根据数学知识,若三直线a、b、c要构成三角形,则必须满足条件:任意两边之和大于第三边(即a+b>c且a+c>b且b+c>a)。计算三角形的面积的公式为:

图3.4 例3.3程序流程图

程序运行过程中,若输入数据能够构成三角形(如输入:3,4,5),if语句中的条件表达式a+b>c&&a+c>b&&b+c>a值为“真”(非0值),则执行其后的复合语句;若输入数据不能构成三角形(如输入:1,2,3),程序则不会执行后面的复合语句。

在C程序中,需要使用复合语句的地方必须使用复合语句的形式,否则程序在语法上可能检查不出任何错误,但程序运行的结果与程序设计者的期望会相去甚远。例如,将例3.3中相关程序段描述为如下形式:(www.chuimin.cn)

程序在编译和链接时没有任何的语法错误,但此时if下面的3个语句在语法上不再是一个整体,语句area=sqrt(s*(s-a)*(s-b)*(s-c));和printf("%f\n",area);与if语句控制结构部分没有任何关系,即无论if结构中的条件成立与否都会执行这两条C语句,因而在逻辑功能上并不能实现对程序的要求。

C语言中规定,复合语句中也可以定义变量,这方面的知识涉及变量的作用范围问题,我们将在“变量的作用域”章节中予以讨论。