5.0 day5 流程控制
流程:
顺序结构
分支结构
循环结构
任何一个程序都可以是三种结构的组合。
5.1.分支结构(选择)
选择 --判断
构造判断的条件
关系运算(大小关系)
>
>=
<
<=
==
!=
1>2 //表达式
//结果
//数据类型
关系运算的结果:
真 or 假
1 0 //被称为逻辑结果
C语言 中 0为假 非0为真
5.2 逻辑运算
与 或 非
&& || !(!优先级super高)
逻辑运算 是用来组合多个关系
与 && 规则 一假则假
或 || 规则 一真则真
非 ! 规则 真假相对
关于优先级
算术 >关系运算>逻辑运算>赋值>逗号
(1>2) && (a++)
&&截断特性(短路特性) 先看左边 左边一旦为假 全为假
||也存在截断特性
5.3.流程控制语句.
两个方面看 1.语句 2.语法格式
remember if语句的三种形式
形式1:
if(表达式) //表达式:做判断的条件
{
语句
}//复合语句
含义:首先判断"表达式"?
真 则执行语句
语句执行完毕,表示if语句结束程序继续往下
假 则if语句结束,程序继续往下
eg main()
{
.....
if()
{
//假或真都继续执行程序
}
.....
}
注意:
if();
{
}
形式2:
if()
{
语句1
}else
{
语句2
}
含义:
首先判断"表达式"
真:则执行"语句1"
语句1执行完,表示if语句结束,程序继续往下
假:则执行"语句2"
语句2执行完,表示if语句结束,程序继续往下
形式3:多分支语句
if(表达式1)
{
语句1;
}else if(表达式2)
{
语句2;
}else if(表达式3)
{
语句3;
}else if
.....
else
{
}
含义:
判断"表达式1"
真: 则执行"语句1" 语句1执行完,表示if语句结束程序继续往下
假:则判断"表达式2"
真:则执行"语句2"语句2执行完,表示if语句结束,程序继续往下
假:则判断"表达式3"
真:则执行"语句3"语句3执行完,表示if语句结束,程序继续往下
假
.....
注意:
1.不存在单独的else语句,else出现一定有一个if与之对应
2.else 与 if匹配规则 :从最里面开始匹配 else与最近前面一个if相匹配
条件运算: //简化代码
表达式1 ? 表达式2 :表达式3
问一问 表达式1? --是真 or假
若是真 则执行 表达式2
若是假 则执行 表达式3
switch //多分支的情况
switch(表达式) //整型表达式
{
case 常量表达式: //1+b
语句;
break;
case 常量表达式:
语句;
break;
case 常量表达式:
语句;
break;
default: //默认
语句;
break;
}
含义:
求解 "表达式"
根据 结果 ,匹配 下面case后面的值
匹配上后,
则执行对应case下的语句 ,
直到遇到了break 或者是switch 右} (花括号)
注意:
1.switch 后表达式 需要是一个 整型表达式
2.case后面是,常量表达式,不能出现变量
含义:
求解"表达式"
根据结果,匹配下面case后面的值
匹配上后,则执行
对应case下的语句 ,
直到遇到了break 或者是switch 右} (花括号)
注意:
1.switch 后表达式 需要是一个 整型表达式
2.case后面是,常量表达式,不能出现变量
含义:
求解"表达式"
根据结果,匹配下面case后面的值
匹配上后,则执行
注意
1. case 是一个标签 lable
2.switch 只会匹配一次
3.default 写错,不会报语法问题,但是写错后不会起 default的作用
4.default写到前面有可能会出现bug
(如果default写到前面 务必加上break)
------------------------------------
if 与 switch 的对比
if:条件判断
switch:值的计算和匹配