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所示。
图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) 格式三种的各表达式其条件要互不相容。