今天主要内容:流程控制
一、对流程的理解
流程分为什么?
顺序结构
分支结构
循环结构
任何一个程序都可以是这三种结构的组合 //也许你的人生也是这样
二、判断
分支结构(选择)
选择 --- 判断
能做判断? --- 通过运算 --- 给构造出判断的条件
构造判断的条件:
关系运算(大小关系)
>
>=
<
<=
==
!=
1 > 2 //表达式
//结果
//数据类型
关系运算的结果:
真 1
假 0
逻辑结果
注意:
C语言不存在布尔类型,关系运算的结果 用 整型类型 保存
1<2<3
运算顺序:
(1<2)<3
1<3
1
1<a<3 //数学角度表示:1<a且a<3
逻辑运算
与
&&
规则:一假则假
表达式1 && 表达式2
或
||
规则:一真则真
表达式1 || 表达式2
非
!
规则:真假相对
逻辑运算 用来 组合 多个关系
C语言如何表达“真”或“假”?
0 为假 1 为真
系统如何判断一个量的“真”或“假”?
0 表示假 非0 表示真
注意优先级:
! 优先于 < <= > >= 优先于 == != 优先于 && 优先于 ||
b = (1>2) && (a++)
b = 0 a = 2
b = (1<2) && (a++)
b = 1 a = 3
&&截断特性(短路特性)
只要第一个式子为假 后面式子不处理 直接输出假的结果
||截断特性(短路特性)
只要第一个式子为真 后面式子不处理 直接输出真的结果
三、语句:
掌握语法格式,
了解语法格式(语义)
1.if语句
形式1:
if(表达式) //表达式 做判断的条件
{
语句
} //复合语句
含义:
首先,判断"表达式"?
如果表达式为:真
执行 语句
语句执行完,表示if语句结束,程序继续往下
如果表达式为:假
表示if语句结束,程序继续往下
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
{
语句;
}
含义:
判断"表达式1"
真
执行"语句1"
语句1执行完,表示if语句结束,程序继续往下
假
判断"表达式2"
真
执行"语句2"
语句2执行完,表示if语句结束,程序继续往下
判断"表达式3...
...
判断"表达式n"
真
执行"语句n"
语句n执行完,表示if语句结束,程序继续往下
假
执行else
if语句结束
注意:
1.不存在单独的else语句,else出现一定有一个if与之对应
2.else与if匹配规则
一定与最里面开始匹配
else与最近前面一个if匹配
条件运算:
表达式1 ? 表达式2 : 表达式3
问一问 表达式1? --- 是 真 还是 假
真, 执行 语句2
假, 执行 语句3
2.switch语句:
含义:
switch 后 表达式 必须为 整型 表达式
case 后 必须为 常量,不能出现变量
求解"表达式"
根据结果,匹配下面case后的值
匹配上后,则执行对应case下的语句,
直到遇到了break或者是switch右},程序结束