我们都知道c语言是一门结构化的编程语言,而这里的结构通常指的是顺序结构、选择结构和循环结构。那我们应该如何用编程语言描述这三种结构?我们接下来一起探讨一下。
目录
2.4 switch语句中的case和default的顺序问题
一、if语句
1.1 if
首先我们要知道if语句的语法形式:
if(表达式)
语句
当表达式为真(成立),则语句执行;
当表达式为假(不成立),则语句不执行;
此时我们知道在c语言中,0表示假,非0表示真,所以结合上面的语句,如果表达式的结果为0,则代表表达式为假,语句不执行;但如果表达式的结果不是0,代表表达式为真,语句可以执行。
if语句执行流程:
1.2 else
当一个问题出现两种情况的时候,我们如果想要表达出两种答案,就需要用到if..else..语句
语法形式:
if (表达式)
语句1
else
语句2
1.3 分支中包含多条语句
当一个分支中包含多条语句时,我们要记得if语句只能控制一条语句,所以在大家写代码时,如果
使用if语句后面包含了多条语句,要记得使用{}将代码括起来,else后面也可以跟上{}。如果不加上
{},那无论那无论条件是否成立,都会被执行。
1.4 嵌套if
在if else语句中,else可以与另一个if语句连用,形成一个多重判断。就比如:
if(表达式)
printf()
else if(表达式)
printf()
else if(表达式)
printf()
1.5 悬空else问题
如果一个代码中有多个if和else,要记住:else总是和最接近的if匹配;
所以在大家自己写代码的时候,要注意自己的代码排版,不要想当然的认为这个else就应该和if匹配,编程器不是按照你的想法去执行,而是要根据你的代码去完成操作,所以为了避免这类问题的发生,在写代码的时候要带上适当的大括号{},这样的会让代码的逻辑更加清晰,让代码的可读性更高,降低错误率。
二、switch语句
2.1 switch
除了我们刚刚提到的if语句之外,在c语言中我们还可以使用switch语句来实现分支结构。
switch语句其实就是一种特殊形式的if...else结构,同样是可以用于判断条件有多种结果。
相比于多重的else if语句,switch语句更易用、可读性更多。
语法形式:
switch(表达式)
{ case value1:statement
case value2:statement
default:statement
}
注意:
在我们使用switch语句的时候,表达式必须是整型表达式;
case后的值,必须是整形常量表达式;
case和后面的数字之间必须有空格;
2.2 switch语句中的break
每一个case语句中的代码执行完成后,需要加上break,才能跳出switch语句。
现在让我们思考一下,如果我们去掉case语句中的break,会出现怎么样的情况?
结果是如果某一个case语句的后面没有break语句,代码会继续往下执行,并有可能执行其他case语句中的代码。所以说在switch语句中break语句非常重要,能实现真正的分支效果。然而,break也不是每一个case语句都要有,看具体情况。
2.3 switch语句中的default
大家使用switch语句的时候,会不会出现一种情况:switch后面的表达式中的值无法匹配代码case语句的时候。当碰到这种情况的时候要不就不做处理,要不就在switch语句中加入default子句。
switch(表达式)
{ case value1:statement
case value2:statement
default:statement
}
就比如标准形式,如果switch后面的expression的结果不是value,与不是value2的时候,就会执行default子句。
2.4 switch语句中的case和default的顺序问题
在这里要强调一下,在switch语句中case语句和default语句是没有顺序要求的,只要代码符合实际要求就行,为了方便观看,一般通常将default子句放在最后处理。
(接下来的循环结构我会在下一篇详细写)