hello,大家好,这里是小程。学C语言也有一段时间了,今天就当做是回顾复习知识,给大家讲讲C语言中的分支语句,也称选择性语句。
C语言中,存在着三种控制语句,分别是:
一.条件判断语句(选择性语句):if语句、switch语句;
二.循环执行语句:do while语句、for语句、while语句;
三.转向语句:break语句、continue语句、goto语句、return语句 。
话不多数,我们开始今天的正题。
有上述分类可知,有两种分支型语句:
1.if语句
if语句的表达形式以及用法
if(表达式)
{
语句
}
其中,括号内的表达式就是判断的条件,由if的英文,我们不难看出,只有满足了括号内的判断条件,才会执行大括号{}中的语句。
在C语⾔中,0为假,⾮0表⽰真,也就是表达式的结果如果是0,则语句不执⾏,对此,我们可以举出以下例子用以更直观的理解这句话:
对此,我们不难看出,若括号内的值为零则不执行if语句,若不为零则会执行;
在学习 if 语句的同时我们还要学会如何判断if语句中的条件,下面我将讲解在if语句中常用来充当判断条件使用的关系操作符与逻辑操作符:
(1)关系操作符:
C语⾔⽤于⽐较的表达式,称为“关系表达式”,⾥⾯使⽤的运算符就称
为“关系运算符”,主要有下⾯6个:
• > ⼤于运算符
• < ⼩于运算符
• >= ⼤于等于运算符
• <= ⼩于等于运算符
• == 相等运算符
• != 不相等运算符
关系表达式通常返回 0 或 1,表⽰真假。
C语⾔中, 0 表⽰假,所有⾮零值表⽰真。⽐如,“20 > 12” 返回 1 ,“12 > 20” 返回 0 。
关系表达式常⽤于 if 或 while 结构。以下举出关系操作符的运用:
对此我们不难看出,当括号内的表达式为真时,我们将会执行语句。
注意:相等运算符 == 与赋值运算符 = 是两个不⼀样的运算符,不要混淆。相等运算符是用来比较是否相等的。
(2)逻辑运算符:
逻辑运算符提供逻辑判断功能,⽤于构建更复杂的表达式,主要有下⾯三个运算符。
• ! :逻辑取反运算符(改变单个表达式的真假)。
• && :“与”运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。
• || :“或”运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。 对此,我讲举出以下例子以方便大家理解:
“与”运算符(&&):
很明显,只有当我输入的大于3并且小于5时,程序才会执行语句。
“或”运算符(||):
在“或”运算符中可看出,和“与”运算符不同,我们只需满足其中一个条件,程序就会执行语句。
逻辑取反运算符(!):
从图中我们可看出,在条件判断原本正确的情况下,加上!会使真假倒转,从而得出与原本运行代码相反的结果。
接下来继续讲解if分支语句。
if……else……语句:
分支分支,但这里怎么只有if这一种路径呢,这时我们不得不引用 if……else…… 语句来完善这个分支了,其表达式如下:
if(表达式)
{
语句1
}
else
{
语句2
}
对此,我将举出例子方便大家理解:
不难看出,若是if的判断条件不对的话,程序将会进入另一条分支(else分支)之中并执行其中的语句,此时便是if分支语句的全貌了。
if的嵌套:
分支不是只有两条分支的,因此我们可以在if中嵌套多个if语句来实行多个分支,举例如下:
由于嵌套的复杂性,我们可以将代码做出优化,如图:
此时的代码显而易见的规整了一些。讲解了if语句后接下来该是switch的登场 。
2.switch
对于switch语句来说,就像其名字一般,是一个开关。 switch语句是⼀种特殊形式的if...else 结构,⽤于判断条件有多个结果的情况。它把多重
的 else if 改成更易⽤、可读性更好的形式。switch语句的写法如图所示:
switch (表达式)
{
case value1:
statement
case value2:
statement
default:
statement
}
当表达式的值等于其中一个 case 后面 value 的值时,程序讲打开开关,执行其中的语句。
对于switch语句的使用,我将举出以下例子:
易看出,当switch()中的值为1时,程序讲进入到 case 1 当中并执行其中的语句;
而当switch()中的值不符合任意的case后面的值时,程序将进入到default中并执行其中的语句;且每个语句后的break是非常重要的,若是没有break,程序将回进入所有的开关以及default之中,并执行其中的语句。