C语言是结构化的程序设计语言,这里的结构包括顺序结构、选择结构和循环结构,而这三种结构也恰恰组合成了我们日常生活中面临的所有事情。本文将介绍这三种结构中的选择结构,它主要通过 if 语句、switch 语句来实现。
关于 if
在 C 语言中,if 引导的分支语句用于根据条件来决定程序的执行路径。它的基本形式是:
if(表达式)
{
语句;
}
当表达式的条件为真时,大括号内的语句将被执行;若表达式的条件为假,则大括号内的语句被跳过。例如:
上述代码中,由于 a>5 为真,所以会输出 "数字大于 5 "。但是当 a 的值小于等于 5时,就不会输出任何结果了。此时,我们可以使用 else 与 if 搭配,形成有双分支的 if...else 结构(if 后面的表达式为真时执行第一个分支,表达式为假时执行第二个分支),更全面地处理问题。
此外,多个 if 和 else 的组合也可以实现多分支选择,程序会从上到下依次判断每一条表达式,当某个表达式为真时,执行对应的语句,然后跳出整个 if...else 结构。如果所有表达式都为假,则执行最后的 else 中的语句,比如以下程序满足第二个条件,故输出 "数字在 5 到 10 之间"。
if 语句还支持嵌套使用,即在一个 if 或 else 的语句块中可以再包含另一个 if 语句,例如:
有了嵌套 if 语句,我们就可以解决更多更复杂的问题。但是在使用多个 if 和 else 时要注意逻辑和格式问题,当 if( ) 后面只有一条语句时,{ } 其实可以省略,但当有多条语句时,{ } 就必须要加上,否则就达不到预期的逻辑效果。此外,当程序中的 if 和 else 过多导致我们看不懂程序时,要始终记住:else 总是跟最接近的 if 匹配。
关于 switch
除了 if 以外,switch 语句也能用来实现分支结构。这是一种特殊的 if...else 语句,用于判断条件有多个结果的情况,它的基本形式是:
上面代码中,根据 switch 后面的表达式计算出不同的值,执行相应的 case 分支。如果在所有 case 分支里找不到对应的值,就执行 default 分支。使用时要注意:1.switch 后面的表达式必须要是整形表达式;2.case 后面的值必须是整型常量表达式;3.case 与后面的常量表达式之间必须要有空格;4.常量表达式后面要有冒号 ( : )
关于 break
另外,关于代码中的 break,其作用是跳出 switch 语句。在 case 分支的最后面加上 break,这样在这个分支的代码执行完毕后才能跳出这个 switch 语句,实现分支效果。当然,break 也不是每个 case 语句都得有,要根据实际情况具体分析,如果某一个 case 语句的后边没有 break 语句,代码会继续向下执行(有可能会执行到其它 case 语句中的代码),直到遇到 break 或者 switch 语句才结束,有时候我们要利用这一特性去实现一些特定的代码因而有意不加 break。 比如,如果我们要设计一个程序实现需求:输入 1-5 时显示 “工作日”,输入 6-7 时显示 “休息日”。那么可以采用以下代码:
关于 default
而上面代码最后用到的 default 语句,则是用于解决不匹配任何一个 case 的情况,比如在上面代码运行起来时输入数字 10,不符合任何一个 case,就会执行 default 中的语句。如果这里没有 default,那么 switch 语句将不执行任何操作,直接继续执行 switch 语句之后的代码。其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,但我们还是通常把 default 分支放在最后,因为这样更符合代码的阅读习惯,也更便于理解代码的逻辑。
与 break 一样,default 语句也不是必需的。如果确定 switch 表达式的值只会是某些特定的值,且不需要处理其他情况时,可以不写 default 分支。
default 分支后面也可以不使用 break 语句,如果没有 break,当执行完 default 分支的语句后,会继续执行下一个 case 分支的语句,这可能会导致不符合预期的结果,所以一般情况下建议在 default 分支末尾加上 break 语句。
总结
以上便是对 if 语句和 switch 语句的全部介绍,它们都是用来实现条件判断的重要语句。相对来说,if 语句适用于条件比较复杂,需要根据不同的逻辑条件进行判断的情况,例如判断一个数是否落在某个特定范围内,或者判断多个不同类型的条件凑一块的情况等;而 switch 语句更适用于对一个整型或枚举类型(简单理解就是你提前规定好的几个特定值)的表达式进行有限个单独分开的值的判断,例如,根据用户输入的数字选择不同的菜单选项,或者根据月份判断季节等。
标签:语句,case,default,选择,switch,break,表达式,结构 From: https://blog.csdn.net/2402_89112112/article/details/145271210