C语言众所周知,C语言是一门过程性的结构化的程序设计语言,那么结构就成了重中之重。C语言的结构有顺序结构,选择结构,循环结构三类,其实也就是人类做事的结构方式,这也体现了C语言的最具自然语言特点。
顺序结构即按照一定的顺序进行编译识别程序,就像人类穿衣吃饭出门长身高年龄等万事万物都有其自然规律和顺序,比较容易理解,今天我们不多阐述。我们重点来看分支与循环。
那么首先,分支即有多条支线,就像一条河有分流一样。C语言中,我们可以使用if、if…else…、switch语句实现分支结构。if语句的语法形式为:
1. if(表达式)
2. 语句
表达式为真,则语句执行,若表达式为假,则不执行。在C语言中,0为假,非0为真,即表达式结果为0不执行,为非0则执行。如下为其执行流程:
if…else…语句与if较为相似,语法形式如下:
1. if(表达式)
2. 语句
3.else……
4.语句2……
其中else可以理解为否则,整体即为-如果(为真/为假)……否则………默认if和else语句都只控制一条语句。所以当遇到需要多个分支时可以采用{}的方式进行多条分支执行。如:
同时,在面对大多数的复杂问题时,我们需要采用嵌套的if语句,使用时用大括号使得整个代码逻辑更清晰,就像用悬空else时,如果有多个if和else嵌套,就需要用到。因为切记一条规则:else总是和最接近的if匹配而不是和对齐的if匹配。用法参考如下:
在这个代码中,就犯了匹配问题的错误,所以程序运行结果什么也没有而下面中:
运用括号修改后,就能更清晰看出问题所在了,所以切记上面的规则。
接下来我们来看Switch语句,其本质是一种特殊的if…else的结构,用于判断条件有多个结果,一定程度上将if…else简化了。用法形式如下:
1.switch(表达式){
2. case value1: statement
3. case value2: statement
…………………
4. default: statement
5. }
其运行顺序为由表达式的不同值,执行相关的case分支,如果找不到对应值,就执行default分支。
注:switch后表达式必须是整型表达式
case后的值必须是整型常量表达式
case和后面的整型常量间必须有空格
每个case语句执行完后都必须加上break,才能跳出这个switch语句。如果某一个case语句后没有break语句,代码就会继续往下执行,有可能执行其他case语句中的代码,直到遇见一个break语句或者switch语句结束。
在switch中,case字句与default子句有要求顺序吗?其实并不是,在switch语句中,case语句和default语句没有特定顺序,只要能满足实际结果的需求就都按照精简原则调整就OK,通常习惯下default子句放在最后只是一种习惯。