if 语句多分支格式

if 语句多分支格式

if(表达式1)

语句1;

else if(表达式2)

语句2;

else if(表达式3)

语句3;

        …

else if(表达式m)

语句m;

else

语句n;

if语句执行过程为:先判断表达式1的值,若其值为非0,则执行语句序列1;若其值为0,则判断表达式2,若其值为非0,则执行语句序列2;若其值为0,则继续判断后面的表达式,直到最后,若没有表达式的值为非0,则执行最后的语句序列n。最后的else语句可以没有,也即当没有表达式满足条件时将不进行任何操作。其执行过程如图1所示。

if 语句多分支格式

1 if-else-if执行过程

【例3-6根据键盘输入字符的ASCII码来判别其类型。


#include <stdio.h>

int main()

{

    char c;

    printf("请输入一个字符:");

    c=getchar();

    if(c<32)

        printf("控制字符\n");

    else if(c>='0'&&c<='9')

        printf("数字\n");

    else if(c>='A'&&c<='Z')

        printf("大写字母\n");

    else if(c>='a'&&c<='z')

        printf("小写字母\n");

    else

        printf("其他字符\n");

    return 0;

}


程序运行结果:

请输入一个字符: p

小写字母

在本例中,由ASCII码表可知ASCII值小于32的为控制字符。在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母,在“a”和“z”之间为小写字母,其余则为其它字符。这是一个多分支选择的问题,用if-else-if语句编程,判断输入字符ASCII码所在的范围,分别给出不同的输出。

   说明:

(1)  if后的“表达式”一般为关系表达式或逻辑表达式,也可以是任意数值类型,必须用“()”括起来。

  (2)  else子句是if语句的一部分,必须与if配对使用,不能单独使用

  (3)  当if和else下面的语句不只一条语句时,要用复合语句形式,即将多条语句用{}括起来,否则它将只执行后面的第一条语句。特别注意{}中的每一条语句后都要加“;”但{}后不需要加”;”。

  (4)  其中格式一可以看做是格式二不考虑条件不成立时的一种特殊情况。

  (5)  格式三中最后的else语句可以没有,即判断各种情况,若没有一种条件成立时,可以不执行任何操作

  (6)  格式三种的各表达式其条件要互不相容。