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

news2025/7/16 16:41:14

开发环境:

  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每次+1
    if (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相当于break
    printf("%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:  // 标记1
	printf("标记1\r\n");
   return 0;
}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Arduino开发实例-EMG 肌肉信号传感器

EMG 肌肉信号传感器 文章目录 EMG 肌肉信号传感器1、EMG 肌肉信号传感器介绍2、硬件准备及接线3、代码实现1、EMG 肌肉信号传感器介绍 在医学研究中,测量肌肉的活动、收缩和扩张非常重要。 EMG 肌肉传感器测量肌肉活动并产生信号以显示扩张和收缩量。 因此,输出取决于所选肌…

k8s笔记1- 初步认识k8s

k8s简介&#xff1a; kubernetes&#xff0c;俗称k8是&#xff0c;用于自动部署&#xff0c;扩缩和管理容器化应用程序的开源系统&#xff0c;它将组成应用程序的容器&#xff0c;组合成逻辑单元&#xff0c;便于管理和服务发现。 k8s的作用 自动化上线和回滚、存储编排…

听GPT 讲Rust源代码--compiler(9)

File: rust/compiler/rustc_trait_selection/src/traits/select/mod.rs 在Rust源代码中&#xff0c;rust/compiler/rustc_trait_selection/src/traits/select/mod.rs文件的作用是实现Rust编译器的trait选择器。 首先&#xff0c;让我们逐个介绍这些struct的作用&#xff1a; Se…

Boost学习之深入理解asio库

Asio简介 Boost C 库 Asio&#xff0c;它是异步输入输出的核心。 名字本身就说明了一切&#xff1a;Asio 即异步输入/输出。该库可以让 C 异步地处理数据&#xff0c;且平台独立。 异步数据处理就是指&#xff0c;任务触发后不需要等待它们完成。 相反&#xff0c;Boost.Asio …

调用百度地图 API 的步骤详解

百度地图 Web 服务 API 为开发者提供 http/https 接口&#xff0c;即开发者通过 http/https 形式发起检索请求&#xff0c;获取返回 json 或 xml 格式的检索数据。用户可以基于此开发 JavaScript、C#、C、Java 等语言的地图应用。百度地图 API 在线地址为&#xff1a;baidumap.…

Gromacs make_ndx建组问题

1. 选择特定分子或原子&#xff1a; gmx make_ndx -f input.gro -o output.ndx这将打开交互式界面&#xff0c;您可以在其中选择要包含在索引文件中的分子和原子。按照提示进行操作&#xff0c;选择适当的分组。 2. 手动创建索引文件&#xff1a; 您还可以手动创建一个文本文件…

JavaWeb——后端之Mybatis

四、Mybatis 概念&#xff1a; Mybatis是一款持久层&#xff08;Dao层&#xff09;框架&#xff0c;用于简化JDBC&#xff08;Sun操作数据库的规范&#xff0c;较繁琐&#xff09;的开发 历史&#xff1a; Apache的一个开源项目iBatis&#xff0c;2010年由apache迁移到了goog…

常见位运算总结

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 前言 1.基础位运算 &运算 |运算 ^运算 >>运算 <<运算 ~运算 2.给一个数n&#xff0c;确定他的二进制表示中的第x位&#xff0c;是0还是1 3.将一个数n的二进制表示的第x位修改成1 4.将一个数…

QML 项目中使用 Qt Design Studio 生成的UI界面

作者&#xff1a;billy 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 前言 今天来和大家聊一下 Qt Design Studio 这个软件。这个软件的主要功能是用来快速完成 UI 界面&#xff0c;就和 widget 中的 desig…

Redis学习笔记(1)——感谢尚硅谷官方文档

Redis学习笔记&#xff08;1&#xff09;——感谢尚硅谷官方文档 1. NoSQL1.1 NoSQL数据库概述1.2 各种NoSQL数据库 2. Redis数据库安装2.1 安装条件2.2 Widows下如何安装Redis?2.3 Linux下如何安装Redis? 3. Redis介绍3.1 Redis 简介3.2 Redis 优势3.3 Redis与其他key-value…

HttpClient库与代理IP在爬虫程序中的应用

目录 前言 一、HttpClient库的基本使用方法 二、代理IP的使用方法 三、代理IP池的使用方法 四、总结 前言 在编写爬虫程序时&#xff0c;我们经常会使用HttpClient库来发送HTTP请求&#xff0c;获取网页内容。然而&#xff0c;有些网站可能会对频繁的请求进行限制&#x…

python的课后练习总结3之条件语句

1,简单点&#xff0c;只有IF IF 后面加入条件然后冒号: 条件成立执行的代码1 条件成立执行的代码2 条件是否成立都执行的代码 身高 float(input(请输入你的身高(米):)) if 身高 > 1.3:print(f您的身高是{身高}米,请您买票) print(祝您旅途愉快) 2,IF 加个else if 条件:…

[论文分享]TimesURL:通用时间序列表示学习的自监督对比学习

论文题目&#xff1a;TimesURL: Self-supervised Contrastive Learning for Universal Time Series Representation Learning 论文地址&#xff1a;https://arxiv.org/abs/2312.15709 代码地址&#xff1a;暂无 摘要 学习适用于各种下游任务的通用时间序列表示具有挑战性&…

无人机低空视角:针对人群密集场景的检测、跟踪和计数技术

无人机低空视角&#xff1a;针对人群密集场景的检测、跟踪和计数技术 DroneCrowdPaper简介数据集ECCV2020挑战DroneCrowd&#xff08;完整版&#xff09; DroneCrowd Paper 无人机在人群中的检测、跟踪和计数&#xff1a;基准研究。 简介 本文提出了一种时空多尺度注意力网络…

数据结构与算法——第一次大作业【考点罗列//错题修正//题解】

目录 一、选择题 ——绪论—— 1.【单选题】——数据结构的研究方向 2.【单选题】 ——数据结构的研究问题 3.【单选题】——数据结构的基本术语及概念 4.【单选题】 ——数据结构与算法 5.【单选题】 ——时间复杂度计算 ——顺序表与链表—— 6.【单选题】——顺序表…

算法训练营Day36(贪心-重叠区间)

都算是 重叠区间 问题&#xff0c;大家可以好好感受一下。 都属于那种看起来好复杂&#xff0c;但一看贪心解法&#xff0c;惊呼&#xff1a;这么巧妙&#xff01; 还是属于那种&#xff0c;做过了也就会了&#xff0c;没做过就很难想出来。 不过大家把如下三题做了之后&#…

多通道病虫害分子检测仪-百科科普知识

在农业科技日新月异的今天&#xff0c;病虫害防治已经成为现代农业的重要一环。为了更精准、更快速地检测和防治病虫害&#xff0c;多通道病虫害分子检测仪应运而生&#xff0c;成为守护绿色家园的"黑科技"。 WX-XC1多通道病虫害分子检测仪是一款集成了分子生物学、…

音频DAC,ADC,CODEC高性能立体声

想要让模拟信号和数字信号顺利“交往”&#xff0c;就需要一座像“鹊桥”一样的中介&#xff0c;将两种不同的语言转变成统一的语言&#xff0c;消除无语言障碍。这座鹊桥就是转换器芯片&#xff0c;也就是ADC芯片。ADC芯片的全称是Analog-to-Digital Converter, 即模拟数字转换…

webpack知识点总结(高级应用篇)

除开公共基础配置之外&#xff0c;我们意识到两点: 1. 开发环境(modedevelopment),追求强大的开发功能和效率&#xff0c;配置各种方便开 发的功能;2. 生产环境(modeproduction),追求更小更轻量的bundle(即打包产物); 而所谓高级应用&#xff0c;实际上就是进行 Webpack 优化…

linux 系统 kill 指令笔记

kill 名称 kill - send a signal to a process 向指定的线程或进程发送信号 描述 The default signal for kill is TERM. Use -l or -L to list availablesignals. Particularly useful signals include HUP, INT, KILL, STOP,CONT, and 0. Alternate signals …