嵌入式(Linux)系列文章目录
第一章 C语言の第一节 必备Linux命令和C语言基础
第一章 C语言の第二节 数据类型、常量、变量及运算符
第一章 C语言の第三节 输入输出专题
第一章 C语言の第四节 控制语句
前言
本文章采用VMware Workstation Pro进行嵌入式(Linux)系列学习
从零开始,重新学习(嵌入式相关内容)并记录知识点(涉及基础c语言(数据结构)、linux编程、shell脚本、文件io、网络编程)等),同时也是为了方便自身回顾,如有不对的地方请大佬多多指教,谢谢!->欢迎评论区留言
第一章 C语言
第四节 控制语句
C语言概述 | 语句 |
---|---|
分支 | if else;switch |
循环 | for;while;do while;goto |
辅助控制 | continue;break;return |
1.if else
1.1 语法格式
if (表达式){
语句块1;
}
else{
语句块2;
}
1.2 常见形式
- 简化形式
- 阶梯形式
- 嵌套形式
1.3 注意事项
- 语句块:当有若干条语句时,必须用{…}括起来
- 表达式
- 一般情况下为逻辑表达式或关系表达式
- 也可以是任意类型(包括整型、实型、字符型、指针类型)
- 请区分if(x = 1)与if(x == 1)的不同
2.switch(多分支选择结构)
2.1 switch语句的基本形式
switch(表达式){
case 常量表达式1: 语句块1; break;
case 常量表达式2: 语句块2; break;
......
case 常量表达式n: 语句块n; break;
default: 语句块n+1; break;
}
2.2 switch语句的使用
- 每个常量表达式的值必须各不相同,否则将会出现矛盾
- 当表达式的值与case后面的常量表达式值相等时,就执行此case后面的语句
- switch中的表达式可以是整型、字符型表达式或枚举
- case常量:只起语句标号的作用
- break语句用于强行跳出switch体,一般每个case后边应有一个break语句,default分支后的break可以省略
- 多个case可以执行一组语句
2.3 switch语句执行过程
3.goto(循环语句)
#include <stdio.h>
int main(int argc, const char * argv[])
{
int i = 1;
int sum = 0;
_loop:
if (i <= 100)
{
sum += i;
i++;
goto _loop;
}
printf("1+2+...+%d=%d\n", i, sum);
return 0;
}
- 当函数有很多个出口,使用goto把这些出口集中到一处是很方便的,特别是函数中有许多重复的清理工作的时候
- 优点
- 无条件跳转易于理解
- 可以减少嵌套
- 可以避免那种忘记更新某一个出口点的问题
- 算是帮助编译器做了代码优化
4.while
4.1 基本形式
while(表达式){
statatments;
};
4.2 注意事项
- 变量初值
- 终止条件
- 变量变化
5. do-while
5.1 基本形式
do{
statatments;
}while(表达式);
6.for
6.1 一般形式
for (expression1; expression2; expression3)
{
statements;
}
6.2 执行过程
- 先求解表达式1
- 求解表达式2,若为真,则执行循环体,然后执行步骤3;若为假,则执行步骤5
- 求解表达式3
- 转回执行步骤2
- 执行for下面的语句
6.3 注意事项
- 表达式1可省略,但循环之前应给循环变量赋值
- 表达式2可省略,将陷入死循环
- 表达式3可省略,但在循环体中增加使循环变量值改变的语句
7.循环辅助语句
- 代码示例
#include<stdio.h>
void main(int argc, char *argv[])
{
int a,b = 0;
int c = 5;
for (a = 0; a < c; a++)
{
for (b = 0; b < c; b++)
{
if (b = c-2)
{
continue;
}
else if (b = c-1)
{
break;
}
printf("%d %d \n", a, b);
// continue跳出位置(b层循环中,当b=c-2时跳过当次打印)
}
// break跳出位置(b层循环中,当b=c-1时,b层循环结束)
if (a = c-1)
{
return;
}
}
}
// return跳出位置(main函数外)
7.1 break(仅跳出当前层循环,注意是循环!不是判断条件!!!)
- 用于从循环体内跳出循环体,即提前结束一层循环
注:break只能用在循环语句和switch语句中
7.2 continue(仅跳过当前层循环的本次过程)
- 结束本次循环,接着判定下一次是否执行循环
注:continue只结束本次循环,而break终止本层循环
7.3 return
- 格式
return(<表达式>);
- 主要用于终止包含它的函数的执行
- 若终止的为主函数,则主程序结束
总结
本章为嵌入式学习系列文章 第一章:C语言の第四节 控制语句