嵌套的基本格式
嵌套if语句有2种形式:- 嵌套在else分支中,格式如下:
if (表达式1) 语句1;
else if (表达式2) 语句2;
else if …
else语句n; - 嵌套在if分支中,格式如下:
if (表达式1){
if (表达式2) 语句1;
else 语句2 ;
}
else 语句3;
配对原则
C++规定:在嵌套if语句中,if和else按照“ 就近配对 ”的原则配对, 即相距最近且还没有配对的一对if和else首先配对 。试分析下面的2组语句有何区别?
//语句1:
if(n%3==0)
if(n%5==0) cout<<n<<″是15的倍数″<<endl;
else cout<<n<<″是3的倍数但不是5的倍数<<endl; //else与第二个if配对
//语句2:
if(n%3==0){
if(n%5==0) cout<<n<<″是15的倍数″<<endl;
}
else cout<< n <<″不是3的倍数″; //else与第一个if配对
两个语句的差别虽然仅在于一对“{}”,但逻辑关系却完全不同。
关于if嵌套语句的几点说明:
- if语句用于解决二分支的问题,嵌套if语句则可以解决多分支问题。
- 2种嵌套形式各有特点,应用时注意区别,考虑一下是否可以互相替换。
- 由上述2个语句可以看出:if中嵌套的形式较容易产生逻辑错误,而else中嵌套的形式配对关系则非常明确,因此从程序可读性角度出发,建议尽量使用在else分支中嵌套的形式。