一、流程控制的定义与分类
定义:程序代码执行的顺序。
分类
顺序结构 :程序按顺序执行,不发生跳转。
分支结构 :依据条件是否满足,有选择地执行相应功能。------今天所学的内容
循环结构 :依据条件是否满足,循环多次执行某段代码。
二、分支结构流程
分支 -- 选择
有条件 可以判断
构造条件
关系运算
> >= < <= == !=
关系运算的结果 只有 0 或 1 ,这个结果 用int型来存储的
逻辑运算
&& 规则: 一假则假
|| 规则: 一真则真
! 规则: 真假相对
逻辑运算 实际是 表示 表达式之间的关系
表达式1 && 表达式2
eg:
result = 1>2 && a++
result = ((1>2) && (a++))
( 0 && 10 )
( 0 && 1 ) //0
a = 11
注意:
&& 截断特性(短路特性) //逻辑运算中-优先算左边的表达式
|| 也有截断特性
注:C 语言中如何表示"真"和"假"?
1-真
0-假
系统如何判断一个量的"真"和"假"?
非0 即为真
2 //真
-1 //真
'a' //真
0 为假
if 语句
//形式1
语法:
...
if (表达式)
{
语句
} //复合语句
...
语义:
如果 表达式 为真
则 执行 if 下的 语句 ,语句执行完后,继续执行if后的代码
如果 表达式 为假
则 跳过 if 下的 语句,执行if语句后面的代码
注意:
1.if 后面 没有 分号
//形式2 --双分支
...
if ( 表达式)
{
语句1
}
else
{
语句2
}
....
语义:
判断 表达式?
真
执行语句1
假
执行语句2
执行完后,继续if后面的代码执行
//形式3
if( 表达式1)
语句1
else if( 表达式2)
语句2
else if( 表达式3)
语句3
else if( 表达式m)
语句m
else
语句n
语义:
判断 表达式1
真
执行 语句1
语句1 执行完成就表示if执行完了,程序继续往后
假
判断表达式2
真
执行 语句2
语句2 执行完成就表示if执行完了,程序继续往后
假
判断表达式3
真
执行 语句3
语句3 执行完成就表示if执行完了,程序继续往后
假
....
注意:
每个判断的if后面不要写分号
Linux vim编译器中快捷键操作-----对齐:
单独一行
==
多行
shift + v选中多行
按一下 =
全局对齐
gg=G (shift+g)
问题:
0.没有单独的else语句,所以else出现必然有其对应if与之配对
1.if - else 配对关系
可以先从最里面的else寻找
找距离else最近的if (在else之前)
switch 语句
语法格式:
switch (整型表达式)
{
case 常量表达式1:
语句1
break;
case 常量表达式2:
语句2
break;
case 常量表达式D:
语句n
break;
default :
语句n+l
break;
}//右花括号
语义:
首先,求解"表达式",根据表达式的结果,到下面case后依次进行匹配,如果与case 后的常量表达式的值一致,则匹配成功,执行该case下面的"语句",直到遇到了 break或 switch 的右花括号 }。。。
注意:
1.switch后 "表达式" ---结果不能是 浮点型
2.case 后面 是常量表达式,不能出现变量
3.default 写错 没有语法问题,但是达不到程序效果