当 if 语句中的执行语句又是 if 语句时,则构成了 if 语句嵌套的情形。
其一般形式可表示如下:
if(表达式)
if 语句;
或者为
if(表达式)
if 语句;
else
if 语句
在嵌套内的 if 语句可能又是 if-else 型的,这将会出现多个 if 和多个 else 重叠的情况,这时要特别注 意 if 和 else 的配对问题。
例如:
if(表达式 1)
if(表达式 2)
语句 1;
else
语句 2;
其中的 else 究竟是与哪一个 if 配对呢?
应该理解为:
if(表达式 1)
if(表达式 2)
语句 1;
else
语句 2;
还是应理解为:
if(表达式 1)
if(表达式 2)
语句 1;
else
语句 2;
为了避免这种二义性,C语言规定,else 总是与它前面最近的 if 配对,因此对上述例子应按前一种情况理解。
【例】
#include<stdio.h>
int main() {
int a, b;
printf("please input A,B: ");
scanf("%d%d", &a, &b);
if (a != b)
if (a > b) printf("A>B\n");
else printf("A<B\n");
else printf("A=B\n");
return 0;
}
比较两个数的大小关系。
本例中用了 if 语句的嵌套结构。采用嵌套结构实质上是为了进行多分支选择,实际上有三种选择即 A>B、A<B 或 A=B。这种问题用 if-else-if 语句也可以完成。而且程序更加清晰。因此,在一般情况下较少使用 if 语句的嵌套结构。以使程序更便于阅读理解。
【例】
#include<stdio.h>
int main() {
int a, b;
printf("please input A,B: ");
scanf("%d%d", &a, &b);
if (a == b) printf("A=B\n");
else if (a > b) printf("A>B\n");
else printf("A<B\n");
return 0;
}
掌握本节内容
登录后开始许愿
暂无评论,来抢沙发