流程控制
1.顺序结构
程序从main函数第一句开始执行,顺序依次执行,执行到main函数结束
2.分支结构
1. 关系运算符
> 大于 > 小于
>= 大于等于 <= 小于等于
== 等于 != 不等于
2. 逻辑运算符
逻辑与 && 一假为假,全真为真(左边为假值右边不再执行)
逻辑或 || 一真为真,全假为假(左边为真值右边不再执行)
逻辑非 ! 真取非得假,假取非得真
3. 特殊运算符(三目运算符)
? :
格式: 逻辑表达式?表达式1:表达式2;
Ret = Num1 > Num2 ? Num1 : Num2;// Num1 > Num2时Ret = Num1,否则Ret = Num2
4. if分支
判断逻辑时使用if分支;同一类数据完成不同操作使用if分支
1. 简单分支
1. 结构:
if (逻辑表达式)
{
语句块1;
} else
{
语句块2;
}
if可以脱离else单独使用,但是else不能脱离if单独使用
if后面必须加条件判断,else后面不能加条件
if不加大括号默认控制一句,最好加上大括号
2. 阶梯分支
1.结构:
if (表达式1)
{
语句块1;
}
else if (表达式2)
{
语句块2;
}
else if (表达式3)
{
语句块3;
}
else
{
语句块4;
}
如果上面的表达式满足,不会判断后续的表达式
3. 嵌套分支
1. 结构:
if (表达式1)
{
if (表达式2)
{
if (表达式3)
{
…
}
}
}
5. switch分支
基本结构
switch (整形表达式)
{
case 常量1:语句块1;break;
case 常量2:语句块2;break;
case 常量3:语句块3;break;
default: 语句块4;
}
switch后面的表达式必须为整形(可以是表达式),不能为变量或变量表达式
switch只有case后面的值比1次,然后顺序向下执行
3.循环结构
使用场景: 重复执行一段代码使用循环结构
有规律的代码使用循环结构
已知循环次数用for
未知循环次数用while
1. for循环
1.基本形式
for (表达式1; 表达式2; 表达式3)
{
语句块;
}
表达式1:for循环执行前需要执行的表达式(对循环中使用的变量赋初始值)
表达式2:循环条件(满足条件执行循环,不满足条件循环结束)
表达式3:每次循环完毕后要执行的代码 语句块:重复执行的代码
2.死循环
for ( ; ; )
{
}
2. while循环
1.基本形式
while (表达式)
{
语句块;
}
2.死循环
while (1)
{
}
3. do..while循环
基本形式
do
{
语句块;
} while (表达式);
4. goto
多用于出错处理
4.辅助控制语句
1. break
用于循环或者switch中,表示跳出当前循环或switch结构
2. continue
只能用于循环结构中,表示结束本次循环
3. return
结束当前函数
GDB调试工具
1. 编译代码是允许进行GDB调试
gcc filename.c -g
2. 使用GDB调试代码
gdb a.out
3. 使用指令调试代码
l 查看代码
b (行号/函数名) 设置断点
r 执行代码
n 单步执行
p 查看变量中的值
s 进入函数中调试
c 运行到下一处断点
q 退出调试




