C程序语言设计3pdf,C程序设计语言(三).pdf

下载

第3章 控 制 流

一个语言的控制流语句用于指定各个计算执行的次序。在前面的例子中我们已经见到了一

些最常用的控制流结构。本章将全面讨论控制流语句,更精确、更全面地对它们进行介绍。

3.1 语句与分程序

在诸如x =0 、i + +或printf (...) 之类的表达式之后加上一个分号( ; ),就使它们变成了语句 :

x = 0;

i++;

printf(……);

在C语言中,分号是语句终结符,而不是像 P a s c a l等语言那样把分号用做语句之间的分隔符。

可以用一对花括号 {与}把一组说明和语句括在一起构成一个复合语句(也叫分程序),复合

语句在语法上等价于单个语句,即可以用在单个语句可以出现的所有地方。一个明显的例子是

在函数说明中用花括号括住的语句,其他的例子有在 i f 、e l s e 、w h i l e与f o r之后用花括号括住的多

个语句。 (在任何分程序中都可以说明变量,第4 章将对此进行讨论。)在用于终止分程序的右花

括号之后不能有分号。

3.2 if-else语句

i f - e l s e语句用于表示判定。其语法形式如下:

if (表达式)

语句

1

else

语句

2

其中e l s e部分是任选的。在 i f语句执行时,首先计算表达式 的值,如果其值为真(即,如果表达

式的值非0 ),那么就执行语句 ;如果其值为假(即,如果表达式 的值为0 ),并且包含e l s e部分,

1

那么就执行语句 。

2

由于i f语句只是测试表达式的数值,故表达式可以采用比较简捷的形式。最明显的例子是用

if (表达式)

代替

if (表达式 != 0 )

有时这样既自然又清楚,但有时又显得比较隐秘。

由于i f - e l s e语句的e l s e部分是任选的,当在嵌套的 i f语句序列中缺省某个 e l s e部分时会引起歧

在表达式后加上分号构成的语句叫做表达式语句。—译者注

第3章 控 制 流计计45

下载

义。这个问题可以通过使每一个 e l s e与最近的还无e l s e匹配的i f匹配。例如,在如下语句中:

if ( n > 0 )

if ( a > b )

z = a;

else

z = b;

e l s e部分与嵌套在里面的 i f 匹配,正如缩入结构所表示的那样。如果这不是我们所希望的,那么

可以用花括号来使该e l s e部分与所希望的i f强制结合:

if ( n > 0 ) {

if ( a > b )

z = a;

}

else

z = b;

歧义性在有些情况下特别有害,例如,在如下程序段中:

if ( n >= 0 )

for ( i = 0; i < n; i++ )

if ( s[i] > 0) {

printf ( "…" );

return i;

}

else /* 错 */

printf ( "error -- n is negative\n" );

其中的缩入结构明确地给出了我们所希望的结果,但编译程序无法得到这一信息,它会使 e l s e部

分与嵌套在里面的 i f 匹配。这种错误很难发现,因此我们建议在 i f语句嵌套的情况下尽可能使用

花括号。

顺便请读者注意,在语句

if ( a > b )

z = a;

else

z = b;

中,在z = a 后有一个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值