【前言】
本篇博客简介C语言中的选择结构,选择结构的条件中总是会出现各种各样表达式的判断,所以本篇博客又补充了一些表达式的内容,结尾还有分析程序和表达式的方法总结,希望对读者有所帮助。
【两类表达式】
一、关系运算符和关系表达式 逻辑值0或1
关系运算符有< <=小于或者等于, > >=大于或者等于,为6级运算符。 == 等于 != 不等于为7级运算符。注意区分“=”为赋值运算符,“==”才是表示等于关系的运算符。
由关系运算符组成的表达式称为关系表达式。
举个栗子:
- 7=7是错误的,因为赋值运算符“=”,左边必须是变量。“==”才是表示等于关系的运算符。
- 5 >4> 3 符号同级,从左向右 5 >4为真得1,1>3为假得0。
- 1 <2 <3 符号同级,从左向右 1 <2为真得1,1<3为真得1。
--------------------------------------------------------------------------------------------------------
二、逻辑运算符与逻辑表达式 逻辑值0或1
逻辑运算符有&& 逻辑与、 || 逻辑或、 !(单目)逻辑非。运算符等级为 && 11级、 || 12级、!2级。
逻辑与就像乘法,非0就是真,全真为1,有0为0。
逻辑或 就像加法a|| b,全0为0,有真为1。
逻辑非为单目,只需一个对象 ,真变假,假变真。
关于运算短路,与的短路 ,遇到 0就短路,因为与运算有0表达式就为0。非的短路,遇到非0短路。
【if语句三种格式】
格式1:
if(表达式)
语句序列1;
后继语句
表达式结果为真就执行语句序列1,表达式结果为假就执行后继语句。
--------------------------------------------------------------------------------------------------------
格式2:
if(表达式)
语句序列1;
else
语句序列2;
后继语句
If表达式后,有多条语句加花括号,整个花括号表示一个语句。
--------------------------------------------------------------------------------------------------------
格式3:if语句的嵌套
if(表达式1)
if(表达式2)
语句序列11;
else
语句序列12;
else
语句序列2;
后继语句
【switch语句】
switch(表达式)
{
case常量表达式1:子句1
case常量表达式1:子句2
…
case常量表达式n:子句n
defalut: 子句n+1
}
switch表达式的值求出和case的值比较,都不符合执行default,如果执行完子句1,一定会执行后面的子句2到子句n。case2符合,就执行子句2,以及后面的case。
注意:
1.switch后必须用小括号将表达式括起。
2.case后常量整型或字符型,不能有变量和逗号运算符。
3.各case后常量不能出现相同的值。
4.switch算作一条语句
5.变量没有赋值,就是随机值
【运算符操作级别】
1级()特殊运算符
2级单目(一个运算对象) ++ 、 --( ++ -- 从右向左计算)、!
3-12级双目 两个操作对象 从左向右计算
3.4 算术 双目(两个运算对象)
6.7 关系 双目
11-12逻辑 双目
13三目
14 = 14赋值
15逗号
【程序和表达式判别】
看到程序,如何标语句?
找配对(比如if else就是配对),找控制(比如if控制哪些语句),标语句(哪些是执行语句)
拿到表达式,如何判别?
先检查合法性,短路优先,优先级高的先算,同级考虑结合性
【小结】
本篇选择结构就介绍到这里,下篇简介C语言循环结构,下篇见~