程序的三种流程:顺序、选择(分支)、循环。
程序 :一定是这些循环的组合
选择 : 选择 (有排他性)
一、关系运算符和关系表达式
(一)运算规则
运算结果 --- 反映关系是否成立 ---真 假 //在c语言中1 0表示
运算优先级
(二)关系表达式
二、逻辑运算 反映多个表达式之间的逻辑关系
与“&&” 运算规则: 一假则假
或 “||”运算规则:一真则真
非 “!” 运算规则:真假相对
逻辑优先级:
1、!(x=a) && (y=b) && 0 ==> ((!(x=a)) && (y=b)) && 0
2、!(a+b)+c-1 && b+c/2 ==> (((!(a+b))+c)-1) && (b+(c/2))
3、a||b+c && b-c ==> a || ((b+c) && (b-c))
注意:截断(短路)特性
即“与”和“或”运算 要求先算左边的式子 ,当左边足够判断时,为了节省运算,不对右边进行运算。
三、if 语句
(一)形式1 单分支
1、语法
if ( 表达式 )
{
语句
} //复合语句
2、语义
如果 表达式
为真
执行 语句
语句 执行结束 也表示if语句结束了
为假
表示if语句结束了
if语句结束了之后,程序继续往下
3、应用
为了处理某个特定情况
4、流程图
(二)形式2 双分支
1、语法
if ( 表达式 )
{
语句1
}else
{
语句2
}
2、语义
如果 表达式
真
则 执行 语句1
假
则 执行 语句2
语句1 和 语句2 执行完,代表 if语句结束了,程序继续往下。
3、语法问题
注意分号
4、应用
如:从两个数中输出较大数。
5、流程图
(三)形式3 多分支
1、语法
if (表达式1)
{
语句1
}else if (表达式2)
{
语句2
}else if (表达式3)
{
语句3
}
...
else
{
语句n;
}
2、语义
如果 表达式1
为真
执行 语句1
为假
判断 表达式2
为真
执行 语句2
为假
判断 表达式3
为真
执行 语句3
为假
判断 ... 表达式 n
对应 语句 执行完成 表示if语句结束,
程序继续往下
3、注意:
注意 不要加 分号
4、举列应用
百分制 转 等级制
从键盘输入一个年份
判断是否为闰年
三、条件运算 “:”
1、语法
表达式1?表达式2:表达式3
判断 表达式1 ?
真
执行 表达式2
假
执行 表达式3
2、应用
用条件 运算 实现 找两个数中最大值
四、swith语句
1、语法:
switch (表达式) //表达式 必须是一个整型表达式
{
case 常量表达式1: //case 后面的表达式 必须是一个 整型的常量表达式 不能有变量
语句1
break;
case 常量表达式2:
语句2
break;
case 常量表达式n:
语句n
break;
default :
语句n+1
break;
}
2、语义:
求解 表达式 ?
用表达式的结果
匹配 case 后面的 常量表达式的值 ,
如果 匹配成功(值是一样的)
则执行 case 下面的
语句
直到 遇到 break
或者
switch 语句的 } (右)
则执行结束
3、注意
1.switch 也可以处理if-else 这种问题
2.switch 可以实现多种情况,对应同一种操作
3.case default 实际上只是语句的标签
4.default 不一定写在最后,如果写在了前面,后面一定要写break
4、应用
switch 百分制 等级制
总结:
if // 表达式 通常是一个判断条件
switch // 表达式 通常是要计算出一个数值