[嵌入式C][入门篇] 快速掌握基础(9个语句)

开发环境:

  1. 网页版:跳转
  2. 本地开发(Vscode):跳转

文章目录

  • 一、基础语法
    • (1)if (如果)
      • 示例1: 普通使用 if
      • 示例2: 带否则 else
      • 示例3: 否则如果 else if
    • (2)switch case (选择)
      • 规则
      • 示例1:
    • (3)for (计次循环)
      • 示例1:
    • (4)while (判断循环)
      • 示例1:
    • (5)do while (判断循环尾)
      • 示例1: 和while效果一致
      • 示例2: 和while的区别 (保证能执行一次)
    • (6)break (跳出循环)
      • 示例1:
    • (7)continue (到循环尾)
      • 示例1:
    • (8)return (返回)
      • 规则
      • 示例1: 在循环体中使用
      • 示例2: 返回参数
    • (9)goto (跳转)
      • 规则
      • 示例1:

一、基础语法

在这里插入图片描述

(1)if (如果)

示例1: 普通使用 if

一般形式: if (表达式) {语句;}
在这里插入图片描述

#include <stdio.h>
int main()  {int a = 8; // 定义一个变量if (a > 6) { // 为真执行语句  为假不执行printf("%d\n", a);}return 0;
}

在这里插入图片描述

示例2: 带否则 else

一般形式:if(表达式) {语句1; } else { 语句2;}
在这里插入图片描述

#include <stdio.h>
int main()  {int a = 8; // 定义一个变量if (a > 10) { // 为真执行语句  为假不执行printf("a > 10, a = %d\n", a);} else {printf("a < 10, a = %d\n", a);}//a = 88; // 改变变量值if (a > 10) { // 为真执行语句  为假不执行printf("a > 10, a = %d\n", a);} else {printf("a < 10, a = %d\n", a);}return 0;
}

在这里插入图片描述

示例3: 否则如果 else if

一般形式:
if(表达式1) { 语句1;}
else if(表达式2) {语句2;}

else if(表达式n){语句n;}
else{语句n+1;}

#include <stdio.h>
int main()  {int a = 8; // 定义一个变量if (a > 10) { // 为真执行语句  为假不执行printf("a > 10, a = %d\n", a);} else if (a < 9) {printf("a < 9, a = %d\n", a);} else {printf("a < 10, a = %d\n", a);}return 0;
}

在这里插入图片描述

(2)switch case (选择)

一般形式:
switch(表达式)
{
case 常量1:语句1;
case 常量2:语句2;

case 常量n:语句n;
default: 语句n+1;
}

规则

  1. switch表达式必须是整数或字符类型。
  2. case值必须是整数或字符常量。
  3. case值只能在switch语句内部使用。
  4. switch case中的break语句是可选的。如果在case中没有找到break语句,匹配的case之后的所有case都会被执行。这被称为C语言switch语句的"穿透"状态。

示例1:

#include<stdio.h>
int main() {int a = 10;switch(a) {case 10:printf("数字等于10");break;case 50:printf("数字等于50");break;case 100:printf("数字等于100");break;default:printf("数字不等于10、50或100");}return 0;
}

在这里插入图片描述

(3)for (计次循环)

一般形式:
for(循环变量赋初值;循环条件;循环变量增值){
语句
}

示例1:

#include<stdio.h> //头文件
int main() { //主函数for(int i=1;i<11;i++) { //循环条件和增量printf("%d",i);//输出结果}return 0;//函数返回值为0
}

在这里插入图片描述

(4)while (判断循环)

一般形式:
while(表达式){
//代码块

在这里插入图片描述

示例1:

#include<stdio.h> //头文件
int main() { //主函数
int i=0;while(i != 10) { //循环条件 (i≠10)printf("%d\r\n",i);//输出结果i++; // i每次+1}return 0;//函数返回值为0
}

在这里插入图片描述

(5)do while (判断循环尾)

在这里插入图片描述
一般形式:
do{
循环体
}while(表达式);

示例1: 和while效果一致

#include<stdio.h> //头文件
int main() { //主函数
int i=0;do { //循环条件 (i≠10)printf("%d\r\n",i);//输出结果i++; // i每次+1} while(i != 10);return 0;//函数返回值为0
}

在这里插入图片描述

示例2: 和while的区别 (保证能执行一次)

#include<stdio.h> //头文件
int main() { //主函数
int i=0;do { //循环条件 (i≠10)printf("%d\r\n",i);//输出结果i++; // i每次+1} while(i != 1);printf("最终结果:%d\r\n",i);//输出结果return 0;//函数返回值为0
}

在这里插入图片描述

(6)break (跳出循环)

break语句通常用于do-while、for、while循环语句中时,可使程序终止循环。

示例1:

#include<stdio.h> //头文件
int main() { //主函数
int i=0;while(i != 10) { //循环条件 (i≠10)printf("%d\r\n",i);//输出结果i++; // i每次+1if (i==5) break; // 如果i=5,则跳出循环}return 0;//函数返回值为0
}

在这里插入图片描述

(7)continue (到循环尾)

continue语句放在循环体内,用来跳过循环体中某一次后面的语句,进入下一次循环。

示例1:

#include<stdio.h> //头文件
int main() { //主函数
int i=0;for(i=0; i<10; i++) { //循环条件 (i≠10)if (i==5) continue; // 如果i=5,则进入下个循环printf("%d\r\n",i);//输出结果}return 0;//函数返回值为0
}

在这里插入图片描述

(8)return (返回)

用于函数的返回值和控制流程

规则

  1. 在函数执行过程中,只能使用return语句一次。
  2. 如果函数的返回值类型为void,则可以省略return语句;否则必须使用return语句返回一个值。
  3. 如果在函数中使用了多个return语句,则需要保证每个return语句都能够被执行到,并且返回的值是正确的。
  4. 在使用return语句时,应该考虑函数的调用方式和传递参数的方式,以确保返回的值能够满足调用方的需要。

示例1: 在循环体中使用

#include<stdio.h> //头文件
int main() { //主函数
int i=0;for(i=0; i<10; i++) { //循环条件 (i≠10)if (i==5) return 0; // 如果i=5,则跳出循环。 这里的return相当于breakprintf("%d\r\n",i);//输出结果}return 0;//函数返回值为0
}

在这里插入图片描述

示例2: 返回参数

#include<stdio.h> //头文件
int test(void) {return 8;
}int main() { //主函数int i=test(); // 调用test函数得到返回值printf("%d\r\n",i);//输出结果return 0;//函数返回值为0
}

在这里插入图片描述

(9)goto (跳转)

一般形式:
goto a;
.
.
a: 语句;
在这里插入图片描述
在这里插入图片描述

规则

  1. 使用 goto 语句只能 goto 到同一函数内,而不能从一个函数里goto到另外一个函数里。
  2. 应该避免向两个方向跳转, 防止函数进入死循环,无法退出。

注意:在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。

示例1:

#include <stdio.h>
int main () {/* 局部变量定义 */int a = 0;do {if(a == 5) {/* 跳过迭代 */a = a + 1;goto FLAG1; // 跳转到标记1}printf("a 的值: %d\n", a);a++;}while(a < 20);
FLAG1:  // 标记1printf("标记1\r\n");return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/230566.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌浏览器 模拟定位

注意事项&#xff1a; 如果要清除位置信息&#xff0c;需将Geolocation修改为No override模拟定位之后需要刷新页面&#xff0c;网页才会生效如果模拟定位&#xff0c;一段时间没有操作&#xff0c;就会清空模拟定位&#xff0c;类似于No override

ubuntu远程桌面连接之novnc

一、前言 该操作是为了实现vnc桌面连接为url连接方式&#xff0c;且在浏览器中可以对ubuntu进行操作。在使用novnc进行操作前&#xff0c;需要先安装vnc才可。ubuntu下如何安装vnc&#xff0c;可看博主前面写的一篇文&#xff0c;ubuntu远程桌面连接之vnc-CSDN博客&#xff0c;…

案例074:基于微信小程序的儿童预防接种预约管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder …

物流实时数仓:数仓搭建(DWS)一

系列文章目录 物流实时数仓&#xff1a;采集通道搭建 物流实时数仓&#xff1a;数仓搭建 物流实时数仓&#xff1a;数仓搭建&#xff08;DIM&#xff09; 物流实时数仓&#xff1a;数仓搭建&#xff08;DWD&#xff09;一 物流实时数仓&#xff1a;数仓搭建&#xff08;DWD&am…

22款奔驰GLE450升级香氛负离子 车载香薰

相信大家都知道&#xff0c;奔驰自从研发出香氛负离子系统后&#xff0c;一直都受广大奔驰车主的追捧&#xff0c;香氛负离子不仅可以散发出清香淡雅的香气外&#xff0c;还可以对车内的空气进行过滤&#xff0c;使车内的有害气味通过负离子进行过滤&#xff0c;达到车内保持清…

神经网络:经典模型热门模型

在这里插入代码片【一】目标检测中IOU的相关概念与计算 IoU&#xff08;Intersection over Union&#xff09;即交并比&#xff0c;是目标检测任务中一个重要的模块&#xff0c;其是GT bbox与pred bbox交集的面积 / 二者并集的面积。 下面我们用坐标&#xff08;top&#xff0…

Oracle导出CSV文件

利用spool spool基本格式&#xff1a; spool 路径文件名 select col1||,||col2||,||col3||,||col4 from tablename; spool off spool常用的设置&#xff1a; set colsep ;    //域输出分隔符 set echo off;    //显示start启动的脚本中的每个sql命令&#xff0c;缺…

ROS学习记录:在ROS中用C++实现激光雷达避障

前言 本文建立在成功获取激光雷达数据的基础上&#xff0c;详细参考 在ROS中用C实现获取激光雷达的数据 一、实现思路 二、在VScode中打开之前编写好的lidar_node.cpp 三、在lidar_node.cpp中写入如下代码 #include <ros/ros.h> #include <std_msgs/String.h> …

k8s---pod的生命周期

pod的相关知识 pod是k8s中最小的资源管理组件 pod也是最小化运行容器化的应用的资源管理对象 pod是一个抽象的概念&#xff0c;可以理解为一个或者多个容器化应用的集合。 k8s中pod的两种使用方式 &#xff08;1&#xff09;一个pod中运行一个容器。"每个po中一个容器&…

知虾会员**成为知虾会员,尊享专属权益**

在当今繁忙的生活中&#xff0c;线上购物已经成为现代人们的主要消费方式之一。而作为线上购物平台的领军者之一&#xff0c;Shopee为了提供更加个性化和便利的购物体验&#xff0c;推出了知虾会员&#xff08;Shopee会员&#xff09;服务。知虾会员不仅可以享受到一系列会员专…

国产化软硬件升级之路:πDataCS 赋能工业软件创新与实践

在国产化浪潮的推动下&#xff0c;基础设施软硬件替换和升级的需求日益增长。全栈国产化软硬件升级替换已成为许多领域中的必选项&#xff0c;也引起了数据库和存储领域的广泛关注。近年来&#xff0c;虽然涌现了许多成功的替换案例&#xff0c;但仍然面临着一些问题。 数据库…

某音关键词搜索商品接口,某音关键词搜索商品列表接口,宝贝详情页接口,某音商品比价接口接入方案

要接入API接口以采集电商平台上的商品数据&#xff0c;可以按照以下步骤进行&#xff1a; 1、找到可用的API接口&#xff1a;首先&#xff0c;需要找到支持查询商品信息的API接口。这些信息通常可以在电商平台的官方文档或开发者门户网站上找到。 2、注册并获取API密钥&#x…

界面控件DevExpress Blazor Grid v23.2 - 支持全新的单元格编辑模式

DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验&#xff0c;这个UI自建库提供了一套全面的原生Blazor UI组件&#xff08;包括Pivot Grid、调度程序、图表、数据编辑器和报表等&#xff09;。 在这篇文章中&#xff0c;我们将介…

Golang 通用代码生成器仙童已发布 2.4.0 电音仙女尝鲜版三及其介绍视频,详细介绍了 Oracle 代码生成

Golang 通用代码生成器仙童已发布 2.4.0 电音仙女尝鲜版三及其介绍视频&#xff0c;详细介绍了 Oracle 代码生成 Golang 通用代码生成器仙童已发布 2.4.0 电音仙女尝鲜版三及其介绍视频。详细介绍了 Oracle 代码生成。即生成后端数据库为 Oracle 的 golang web 代码。并同时生…

解决SyntaxError: future feature annotations is not defined,可适用其他包

方法&#xff1a;对报错的包进行降级 pip install tikzplotlib0.9.8site-packages后面是使用pip install安装的包&#xff0c;根据这个找到报错的包 想法来源&#xff1a; 环境是python3.6&#xff0c;完全按照作者要求进行环境配置&#xff0c;但仍报错。 我在网上找的解决…

使用Redis进行搜索

文章目录 构建反向索引 构建反向索引 在Begin-End区域编写 tokenize(content) 函数&#xff0c;实现文本标记化的功能&#xff0c;具体参数与要求如下&#xff1a; 方法参数 content 为待标记化的文本&#xff1b; 文本标记的实现&#xff1a;使用正则表达式提取全小写化后的…

阿里云服务器Valheim端口2456、2457和2458放行设置

使用阿里云服务器搭建Valheim英灵神殿需要开启2456-2458端口&#xff0c;阿里云服务器默认只开放了22核3389端口&#xff0c;开通2456端口是在安全组中配置的&#xff0c;阿里云服务器网aliyunfuwuqi.com来详细说下阿里云服务器安全组开通端口流程&#xff1a; 阿里云服务器安…

文件管理方法:利用文件大小进行筛选,高效移动文件至目标文件夹

在日常工作中&#xff0c;文件管理是一项至关重要的任务。为了更高效地管理文件&#xff0c;可以利用文件大小进行筛选&#xff0c;并将文件快速移动至目标文件夹。接下来一起来看看云炫文件管理器如何利用文件大小进行筛选&#xff0c;以及如何高效移动文件至目标文件夹的方法…

程序媛的mac修炼手册--MacOS系统更新升级史

啊&#xff0c;我这个口罩三年从未感染过新冠的天选免疫王&#xff0c;却被支原体击倒&#x1f637;大意了&#xff0c;前几天去医院体检&#xff0c;刚检查完出医院就摘口罩了&#x1f926;大伙儿还是要注意戴口罩&#xff0c;保重身体啊&#xff01;身体欠恙&#xff0c;就闲…

论文查重降重写成大白话可以吗

大家好&#xff0c;今天来聊聊论文查重降重写成大白话可以吗&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 论文查重降重&#xff1a;用大白话解析 一、引言 写论文是每个…