第四章语句
4.1.1表达式语句
表达式语句出现得最多,因此,有人说C语言是表达式语言。
表达式语句与表达式之间虽然只差一个分号(;),但二者是截然不同的。在程序中,有的地方需要用表达式,则不能写成表达式语句。例如,在if语句或循环语句的条件中,要求用表达式作为条件,如果写成表达式语句(即末尾加了分号),则是错误的。同样,在要求用表达式语句的地方,写成表达式(即少写一个分号),也是错误的。所以,读者一定要搞清楚何时用表达式,何时用表达式语句,二者不要搞混了。
例如,
b=a+3
是一个表达式;而
b=a十3;
便是一个表达式语句,这是一个赋值表达式语句。类似地,表达式语句还有:
++i;            (算术表达式语句)
m>n7m:n;        (条件表达式语句)
b==5            (比较表达式语句)
x&&++y||Z;      (逻辑表达式语);
printf("0n!\n")(函数调用也是表达式语句)
i=a,j=5,k=7;    (逗号表达式语句)
等等。
有些表达式语句虽然是合法的,例如,
m> n? m;n;
但是,它并没有实际意义,需要将其表达式的值赋给某个变量才有意义。例如,
x=m>n? m:n;
这是一个有意义的表达式语句,它将一个表达式m>n? m ; n的值赋给了变量x.
虽然任何一个表达式加上分号都构成表达式语句,但在程序中要出现的是有意义的表达式语句。
4.1.2 空语句
空语句是一种只有分号而没有表达式的特殊语句。空语句是c语句中最简单的语句,因为它只由一个分号(;)组成。
空语句是一种不执行任何操作的语句。说它是特殊语句是指它是一种"不做事情"的语句。
空语句在编程中也是有用的,它主要被用在需要一条不做事情的语句的地方。例如,它可用来作循环体,则该循环是空循环。下面是一个为了延迟一段时间的循环,其循环体可用空语句。
for<i=0: i<1000;i++)
空语句还可以用在goto.语句中语句标号的后面,即需要goto语句转向一条什么事情都不做的语句,那么在该语句标号的后面可用空语句。
4.2.1复合语句
复合语句是指由两条或两条以上语句用花括号({})括起来的语句序列。
C语句中的语句简单地划分为单条语句和复合语句两类。单条语句是指只有一条语句,而复合语句是指多条语句的总称,但是,多条语句用花括号括起来才称复合语句。没有用花括号括起的若干条单条语句只能称为语句序列。所以,复合语句是一种特殊的语句序列,它被一对花括号括起来,它在程序中被看作是一条语句。一般地说,凡是可以出现一条语句的地方都可以出现复合语句。
复合语句是C语言程序中常用的语句形式之一。在复合语句内部还可以包含有复合语句,即复合语句可以嵌套。例如,
上述便是复合语句嵌套的一种形式。复合语句常用作if语句的if体、else体和else if 体以及循环语句的循环体等。
复合语句和函数体虽然都是用一对花括号({})来定界的,但是两者间是有区别的。复合语句是由两条或两条以上语句序列组成的,而函数体内可以是多条语句的语句序列,也可以只有单条语句,还可以没有语句,即为空。另外,函数体内可以包含若干个复合语句,而复合语句内不能包含函数体,只能包含复合语句。
4.2.2 分程序
分程序又称程序块。分程序是一种花括号内含有说明语句的复合语句。分程序是一种复合语句,但是复合语句不一定是分程序,只有包含说明语句的复合语句才是分程序。因此,复合语句包含了分程序,分程序是复合语句的一种。具有下列格式的复合语句是分程序:
(说明语句序列)
(执行语句序列)
}
在分程序中,说明语句序列一定要放在执行语句序列的前边。
在分程序内可以定义或说明变量,也可以对已定义过的变量进行重新定义。在分程序中定义的变量都是属于局部变量,它的作用域仅在定义它的分程序内。有关这方面的详细情况在讲述存储类时再做详细描述。
4.3.1条件语句
条件语句是一种根据指定的条件来决定执行不同的程序段的语句。条件语句又称if语句。
1.条件语句的格式和功能
basic语言是一种条件语句的格式如下:
if(条件i>)
(语句1)
else if((条件2))
(语句2>
else if((条件3))
(语句3)
else if((条件N))
(语句N)
else
(语句N+1>
这是if语句的完整的格式,其中,if和。lse都是关键字。(条件1)至<;条件N)都是任一表达式,用来指出条件的表达式多是关系表达式和逻辑表达式,也可用其他表达式。<;语句1)至(语句N -} })都是单条语句或复合语句。
在if语句中,至少要有一个if短语,最简单的if语句格式如下:
if(条件))
(语句)
在if语句中,除了至少要有一个if短语之外,可以有一个(只能有一个)else短语,或者没有else短语。el
se if短语在if语句中可以没有,也可以有一个或多个。一般在多路分支的间题中,需要用到多个else if短语。具有一个else短语而无else if短语的if 语句格式如下:
if(条件1))
(语句1)
else
(语句2)
if语句的功能描述如下:
先计算(条件1)中表达式的值,如果其值为非零,则执行(语句1),然后执行该if 语句后边语句,如果其值为非零,则不执行(语句1>,接着计算《条件2)中表达式的值。如果其值为非零,则执行(语句2),然后执行该if语句后边语句;如果其值为零,则不执行<;语句2),接,计算<;条件3)中表达式的值,再判断,依次类推。如果N个条件对应的表达式的值全都为零,则执行<;语句N+1)然后执行该if语句后边的语句。如果N个条件对应的表达式中某个值不为零,则执行该条件后边的语句,然后退出if语句,即执行该if语句后边的语句。
if语句的功能可用下图所示:
2. if语句的应用
if语句在具体应用中要注意:一个if语句中只能有一个。Ise短语,也可以没有。lse 短语,而且在多重嵌套的if语句中,else短语总是与它前面最近的if相匹配的。
下面通过]L个具体例子说明if语句的使用。
[例4.1]输入两个整数,按其值由大到小顺序输出这两个数。
Main()
{
int a,b,t,
pcintf("Input a,b;"),
scanf ("%d%d"&a,&b),
if(a<b)
{
t=a
a=b,
b=t,
}
printf (%d,"d\n,",a,b);
}
执行该程序后,屏幕显示如下提示信息:
Inputa,b,  3u5
输入3和5后,按回车键3与5之间用空格符分隔,屏幕显示如下结果:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。