1
C语言程序设计
1.4.3.2 3.3.2 if else流程

3.3.2 if else流程

语句形式:

img205

这种if语句形式为两路分支结构,即二选一分支结构。

执行过程:

如果表达式的值为真,执行语句1,否则执行语句2。控制流程如图3.3.1(b)所示。

例如:

img206

如果语句1、语句2不需采用复合语句时,这种形式的if语句可以用条件运算符?:简化。用条件运算符可以构成条件表达式。其一般形式在第二章中已介绍,即:

  e1?e2:e3

当表达式e1的值为真时,取表达式e2的值作为整个条件表达式的值,否则表达式e3的值作为整个条件表达式的值。

因此上例可用条件运算符简化为一条赋值语句:

  a=(b〉=0)?b:−b;

执行过程为:若表达式b〉=0为真,b赋给a,否则−b赋给a。此语句的功能是对b取绝对值。

例如:

img207

此语句的功能是判断c是否为大写字母,若是,转换为小写字母(c+32),否则不转换。32是小写字母与大写字母相应ASCII码的差值。

使用条件运算符,等效的赋值语句为:

  c=(c〉'A'&&c〈'Z')?(c+32):c;

例3-2 输入两个整数a和b,若a小于b,交换两数,并输出交换后的a,b值,否则输出“未交换”信息。

程序如下:

img208

程序的执行结果是:

img209

再执行:

img210

img211