嵌入式系列文章之第一章 C语言の第四节 控制语句

嵌入式(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语句执行过程

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语言の第四节 控制语句

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值