![C++新经典](https://wfqqreader-1252317822.image.myqcloud.com/cover/184/44510184/b_44510184.jpg)
上QQ阅读APP看书,第一时间看更新
4.2.2 if语句的嵌套
在if语句中又包含一个或者多个if语句称为if语句的嵌套。例如:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p81_85445.jpg?sign=1739349440-br0vLISoBSqrxGCd4NZqJ6NdOmPPME2u-0-1450f08663dcfef88152b3af95ab916c)
这里要特别注意if与else的配对关系:else总是和它上面最近的尚未配对的if进行配对。这句话一定要记住,一定要理解好。例如如下代码:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p81_85447.jpg?sign=1739349440-TM0dSXB9eFtWadFI5Q3qHYnPFEwkYokw-0-091692f7719027033222c8358da68c63)
笔者在写上面这段代码时,刻意让第一个else与最上面的if左侧对齐,故意造成视觉上的误会,但实际上,第一个else是和从上往下数第二个if配对的(也就是应该和第二个if左侧对齐)。看看如下范例,注意不要被语句的对齐所迷惑:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p81_85448.jpg?sign=1739349440-OqqzhP6gH8PiT6LiVgzPiRgBny9RuS4I-0-724276e0efa882003339d7ba3c504e36)
上面这段代码,可以加一个{}括起来,让代码看起来更清晰一些,但代码功能丝毫不发生任何改变。调整如下:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p81_85449.jpg?sign=1739349440-YpEZw3Br3hDISv5c24yJabzH0OVZFBQF-0-f78fee7634faecd7a84778531ea69755)
所以,如果if与else数目不一致的话,为防止出错,建议增加{}来明确配对关系,这样会使代码看起来清晰易读。例如如下代码:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p82_85451.jpg?sign=1739349440-bENFNHH93tUVVfsSWmdOGVDSr4krMqN5-0-cfa5469fb25c23c0248d708688c743f6)
上面这段代码,因为{}的存在,限定了内嵌if语句的范围,因此此时的else必定会和第一个if配对,而不再和内部的if(第二个if)配对。看看如下范例:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p82_85452.jpg?sign=1739349440-k8o8aJfrM1YRdH7m1Rpo5DPq5jYwm9u4-0-8a38984a26ab564666d5160a1af6ebd1)
上述范例中,如果让x的初始值为2,则执行结果会有什么变化呢?可以自己测试一下。
必须再次强调,为了防止混乱,也为了其他人能够清晰地阅读自己所写的代码,该加{}的地方一定要加,该缩进的地方也一定要缩进,如if之下的语句都是要有缩进的,可以按Tab键进行缩进,该左侧对齐的地方一定要左侧对齐。下面再提供一个范例,每位读者非常有必要将这些范例逐一练习,这是提高自身编程能力的最好方法,请牢记!
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p82_85453.jpg?sign=1739349440-oqbGAqonGngUklDlmgB3b7Er1DPwyUJP-0-34bd84c94556854fcb36a2e91afdde14)