选择结构的嵌套
标签: C语言
学习人数: 19.0k


高清播放
赞赏支持

当 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;  
}  

 

登录查看完整内容


课后作业

掌握本节内容


登录后开始许愿

暂无评论,来抢沙发