分支结构
问题抛出
我们在程序设计中往往会遇到如下问题,比如下面的函数计算:
也就是我们必须要通过一个条件的结果来选择下一步的操作,算法上属于一个分支结构,处于严重实现分支结构主要使用if语句。
条件判断
根据某个条件成立与否,决定是否执行指定的任务(操作)。
条件判断的结果是逻辑值(布尔类型值,也就是说分支语句的条件可以使用关系表达式和逻辑表达式),在程序中用真(1)和假(0)来表示。
关系运算及其表达式
关系运算符及其优先级次序
关系运算符是用来进行比较的符号,C语言中提供了6中关系运算符
关系表达式
关系表达式是指用关系运算符将两个表达式连接起来组成的有意义的式子。
注意:在C语言中,用1(非0)表示关系表达式的值为真(条件成立),0表示关系表达式的值为假(条件不成立),即关系表达式的值要么为1(条件成立),要么为0(条件不成立)。
问题抛出
有时,只用一个简单的关系表达式无法完整表达一个条件
其中的条件需要用逻辑表达式来表示,x!=0 && a!=0,&&就是一种逻辑运算符。
逻辑运算及其表达式
逻辑运算符及其优先级
- 逻辑运算符是构成复杂的符合条件的运算符。
C语言中提供了3种逻辑运算符:
逻辑表达式
a | b | !a | !b | a&&b | a||b |
---|---|---|---|---|---|
非0 | 非0 | 0 | 0 | 非0 | 非0 |
非0 | 0 | 0 | 非0 | 0 | 非0 |
0 | 非0 | 非0 | 0 | 0 | 非0 |
0 | 0 | 非0 | 非0 | 0 | 0 |
用逻辑运算符将关系表达式或逻辑表达式连接起来的构成有意义的式子。
逻辑表达式中各种运算符的优先级顺序如下:
!(逻辑非)-> 算术运算符(±*/%) -> 关系运算符(>、<、>=、<=、!=、) -> &&和|| ->赋值运算符(=、+=…)
C语言编译系统在表示逻辑运算符结果时:用1表示真,用0表示假
案例:
假设a=4,b=5,则:
!a -- 0
a && b -- 1
a || b -- 1
!a || b -- 1
4 && 0 || 2 -- 1
小贴士:
实际上,逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0,而且也可以是字符型、实型和指针型等。系统最终是以0和非0来判定它们的真假的,例如:
‘c’&&‘d’,结果为1
注:主页内容将持续更新,有问题可提出,共同讨论。