1、教科书中的嵌套
在C语言教科书里面,当遇到分支结构、循环、函数调用和结构体的时候,都会提及到一个概念,就是嵌套,笼统地说就是套娃,A里面可以有和A同类的东西,当时学的时候挺费脑子的,书里面还有一堆习题让你去区分到底哪个是哪个,在毕业后回头看这个章节觉得是不需要存在的,反而让人误解有什么新东西的产生。书里面是这样去描述的:
1.1、分支结构的嵌套
在if
语句中又包含一个或者多个if
语句称为if
语句的嵌套。接着书本给出一个很容易让人判断错误的例子,第一个if
其实是没有else
的,但是刻意的对齐和糟糕的编程风格实在是误导别人。
在这里,小白想给出自己对于if-else
的理解:
1、每一个if
或者else
后面,是一个新的独立空间,它可以操作所有符合作用域范围内的对象,以及定义新的变量类型,但是不能定义函数;
2、为了正确理解,必须在if
和else
后面添加花括号{}
以代表独立空间的边界,并且以不同的缩进表达不同的空间;
3、对于C语言标准,if
后面可以没有else
,也可以有else
;
4、如果if
后面有else
,那么他们必然处于同层空间;
现在我们抛开嵌套这个概念,重新回去看那个糟糕的例子,根据3和4整理如下:
if () {
if () {
} else {
if () {
} else {