C语言之对结构的认知(下)

从零构建:ESP32S3无线DAP-Link调试器的硬件与软件协同设计 本文详细介绍了基于ESP32S3的无线DAP-Link调试器的硬件与软件协同设计,涵盖关键元器件选型、无线通信协议优化、双核任务处理及低功耗调试方案。通过ESP-NOW协议实现低延迟无线调试,结合USB协议栈与双核协同,为嵌入式开发提供高效灵活的调试解决方案。 阅读详情

上一篇,我们介绍了 顺序结构 和 选择结构 ,这篇我们来介绍 循环结构 。(没有看过上篇的朋友可以去我主页找一下上篇。)

三.循环结构

C语言中,循环结构主要运用的有两种,while循环 和 for循环 。循环结构就像它的名字一样,使程序不停的循环运行。

1.while循环

1.1.while循环的基本结构

while循环 的形式和if语句是很相似的,具体形似如下:

while( 判断 )
{
    语句
}

判断小括号中的语句是否为真,如果为真执行大括号中的语句,反之不执行。是不是和if语句很相似?

1.2.while循环的实践

我们来进行一个简单的 while循环 的使用。

输出:1~10之间的数

#include <stdio.h>

int main()
{
	int i = 1;
	while (i <= 10)
	{
		printf("%d ", i);
		i = i + 1;
	}
	return 0;
}

1.3.do~while循环的基本结构

do~while循环 的运用和 while循环 稍有不同,它的基本形式如下:

do{
    语句
}while( 判断 );

从它的基本形式,我们就不难看出,do~while循环 先进行一次循环语句的运行,再判断()中的语句是否为真,若为真,继续循环,反之退出循环。

1.4.do~while循环的实践

输出1~10之间的数:

#include <stdio.h>

int main()
{
	int i = 1;
	do
	{
		printf("%d ", i);
		i = i + 1;
	} while (i <= 10);

	return 0;
}

do~while循环 主要用于循环至少执行一次的情况下,它使用的次数相对来说是比较少的。

2.for循环

for循环 由于自身形式表达更为清晰,在编程中使用最多。

2.1.for循环的基本形式

for(语句1; 语句2; 语句3)
{
    循环语句
}
  • 语句1:初始化循环变量。
  • 语句2:用于循环结束条件的判断。
  • 语句3:用于循环变量的调整。

 2.2.for循环的用法

下面我们通过一个简单的 for循环 的应用来了解for循环的用法。

#include <stdio.h>

int main()
{
    int i = 0;
    for(i=1; i<=10; i++)
    {
    printf("%d ", i);
    }
 
    return 0;
}

首先,利用语句1初始化变量 i = 1,然后判断 i 是否 <=10,若为真,执行循环语句,随后对 i 进行+1操作,再次判断 i 是否 <=10,若为真,继续执行循环语句,随后对 i 进行+1操作,这样反复运行,直到 i <= 10 的条件不成立,结束循环。整个循环的过程中,语句1初始化部分只被执⾏1次,剩下的就是语句2、循环语句、语句3在循环。

当然,语句1、2、3都是可以空出来的,但是 for循环 的基本形式必须保留。

比如,这串代码你还可以这么写:

#include <stdio.h>

int main()
{
	int i = 1;
	for ( ; ; )
	{
		if (i == 11)
			break;
		printf("%d ", i);
		i++;
	}
	return 0;
}

2.3.for循环的实践与理解

同样的,我们利用 for循环 输出1~10之间的整数:

#include <stdio.h>

int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		printf("%d ", i);
	}

	return 0;
}

 3.while循环,do~while循环,for循环的对比

#include <stdio.h>

int main()
{
    int i = 1; //变量的初始化
    do
    {
        printf("%d ", i);
        i = i + 1;    //变量值的改变
    } while (i <= 10);      //判断

    return 0;
}

#include <stdio.h>

int main()
{
    int i = 1;  //变量的初始化
    while (i <= 10)  //判断
    {
        printf("%d ", i);
        i = i + 1;  //变量值的改变
    }
    return 0;
}

 

#include <stdio.h>

int main()
{
    int i = 0;
    for (i = 1; i <= 10; i++)  //(初始化; 判断; 改变值的大小)
    {
        printf("%d ", i);
    }

    return 0;
}

由此观之,无论是for循环,while循环,do~while循环都有,变量初始化,判断,变量值的更改三部分。而 for循环 中这三个值的位置都很固定,更利于对代码的理解和维护,故 for循环 很受大家的欢迎。

单单从代码的执行方式来看,for 循环 和 while 循环 有类似之处,都先进行判断,如果为真,再执行代码。⽽ do~while循环 则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表 达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。

简而言之,while循环,先判断,后循环;do~while循环,先循环,后判断。

4.循环中continue和break的作用

4.1.continue的作用

我们知道,continue 的译为:继续。那么在循环中它就是这个作用。

同样,我们举例来说明:

#include <stdio.h>
int main()
{
	int i = 1;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			continue;   
		printf("%d ", i);
	}
	return 0;
}

运行一下:

我们发现,在循环中,当 i 的值为 5 时,程序执行了 continue 语句,使循环跳过了 5 这个值,不输出它,继续后面的循环。就好比击鼓传花,传到第五个人时,第四个人直接把花球给第六个人,跳过第五个人,第六个人继续将花球传下去。所以,未来当某个条件发⽣的时候,本次循环⽆需再执⾏后续某些操作的时候,就可以使⽤ continue 来实现。

4.2.break的作用

循环中的 break 与 switch 中的 break 作用是一样的。

同样,我们举例来说明:

#include <stdio.h>

int main()
{
	int i = 1;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			break;
		printf("%d ", i);
	}
	return 0;
}

运行,输出的结果为:

可以看到,当 i == 5 时,程序运行了 break 语句,使循环直接结束。就像击鼓传花,花球传到第四个人时,直接停止了。所以 break 的作⽤是永久的终⽌循环,未来我们在某个条件发⽣时,不想再继续循环的时候,就可以 使⽤ break 来完成。

四.结语

这两篇博客就是我对C语言中结构的简单认知,如果有什么不合适的地方,欢迎留言更正。让我们一起向资深程序员进发吧。

【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part2知识获取与图谱构建、服务搭建 前序文章:其中原项目提供了关系数据如下: 其中五列数据表示:人物1,人物2,人物1与人物2关系,人物1所属家族,人物2所属家族。关系说明:以第一列为例,贾演是贾代化的父亲。下面我们就将这个数据放到neo4j中。这些需要去连接,需要安装这个包: 程序中,我使用去读取配置文件, 其中为了保持配置全局唯一性,使用单例的写法。 后面就是创建构建关系文件,构建neo4j图谱数据了,如下: 后期可能会将构建图谱内容使用flask去生成命令行的方式构建,暂时在开发的过程查看构建情况,便于调试。导入关系后,我们再查看 阅读详情

相关推荐

基于E310的纯逻辑代码实现AD9361射频收发

基于微相科技的E310平台实现AD9361的射频收发功能。采用纯逻辑控制的方式,不需要PS参与。实现了用VIO控制收发使能,发射功率,收发频率,数据接口时序控制,接收增益,BIST测试等功能。

xiaomingzi55的博客 2336

c语言结构优化原则,优化学生认知结构 提高C语言程序的设计教学质量.doc

优化学生认知结构 提高C语言程序的设计教学质量优化学生认知结构 提高《C语言程序设计》教学质量[摘 要]充分地利用高等教育学、心理学的理论,使学生在掌握了已有知识的基础上更好地掌握后续知识,是当今高校教学改革的新热点。在C语言程序设计教学中,运用心理学中的认知―结构学习论,经过新知识的获得、知识的转化和评价三个过程,使学科的基本结构转变成学生头脑中的认知结构。[关键词]认知心理学 C语言程序设计 ...

weixin_42360733的博客 184

多期DID实战指南:从CSDID原理到分组加权策略

本文深入解析多期DID(CSDID方法)在政策评估中的实战应用,从核心思想到分组加权策略全面讲解。通过电商扶贫等案例,详细演示如何正确处理分批实施政策的数据分析,包括分组拆解、子模块DID操作及加权平均选择,帮助研究者规避常见误区,提升政策评估的准确性。

weixin_26833503的博客 529

C语言之对结构的认知(上)

众所周知,C语言是一种的程序设计语言。从我们日常的使用中不难看出,其中最基本且最长见的结构有三种,顺序结构选择结构循环结构。通过这三种结构的组合使用,我可以实现复杂的逻辑和功能。

code_0218的博客 1772

如何使用AKShare作为OpenBB的数据源

`openbb_akshare`项目是 OpenBB 的数据源扩展。可以用于查询A股和港股数据

FinAnalyzer金融分析工具 3196

GameFramework专栏目录

本专栏是专门介绍GameFramework框架的,持续更新中,如有疑问可留言,24小时内回复。

TxNet 4728

这个c语言技巧,刷新了我对结构体的认知!

【说在前面的话】2022年了,想必已经不会有人对嵌入式开发中“数据结构(Data Structure)”的作用产生疑问了吧?无论你是否心存疑惑,本文都将给你一个完全不同的视角。每每说起数据...

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 1394

【STM32 CubeMX】I2C中断方式与DMA方式

在STM32 CubeMX环境中,I2C(Inter-Integrated Circuit)通信协议的实现可以采用中断方式或DMA(Direct Memory Access)方式。中断方式通过触发中断来处理数据传输,而DMA方式则利用直接内存访问技术来实现数据传输,减轻了CPU的负担。在选择I2C通信方式时,开发者需要根据具体的应用需求和性能要求来选择合适的方式。STM32 CubeMX提供了图形化配置工具,使得配置I2C通信方式变得更加便捷。

m0_62599305的博客 7749

这个C语言技巧,刷新了我对结构体的认知!

这个C语言技巧,刷新了我对结构体的认知!

weixin_55751709的博客 364

RT-DETR改进策略【小目标改进】| Shape-NWD:融合改进,结合Shape-IoU和NWD 更好地适应小目标特性

Bw−wgt2h−hgt2weight2Bweight2w−wgt​2h−hgt​2​其中weight2weight = 2weight2。

Limiiiing的博客 1548

HFSS实战项目——微带一分四功分器

呕心沥血保姆级教程!!!!手把手教会你做功分器,史上最详细步骤!!!

2401_87464239的博客 2676

初识C语言之条件结构篇——带你认知编程世界的逻辑之美!

目录 IF语句 if语句 IF语句的基本的形式 if…else语句形式 else if语句形式 IF嵌套形式 if的嵌套形式 条件运算符 switch语句 switch语句的基本形式 多路开关模式的switch语句 if else语句和switch语句的区别 选择结构程序应用 每文一语 IF语句 if语句 在日常生活中,为了使交通畅通有序,一般会在路口设立交通信号灯。在信号灯显示为绿色时车辆可以行驶通过,当信号灯转为红色时车辆就要停止行驶。可见,信号灯给出了信号,人们通过不

迷茫与徘徊只会让你陷入绝境,欢迎私信博主,带你开始提升变现价值! 3077

YOLOv5源码逐行超详细注释与解读(5)——配置文件yolov5s.yaml

全网最详细的YOLOv5源码解读之配置文件yaml。逐行注释,逐句讲解,一文带你了解yaml。小白必看!

路人贾的博客 1万+

基于C语言对数据结构中线性结构三种存储方式的认知

数据结构是每一个码农都必须要熟悉的一门课程、又或者说是一种手段。每一个程序员应该都知道一句“圣经”: 程序 = 数据结构 + 算法; 所以,我会在这篇博客记录我学习线性结构的理解和深入思考的想法。 一、线性表 1.1顺序表的定义 typedef int data_t; #define N 128 typedef struct { data_t data[N];//顺序表的长度 int last;//方便知道顺序表的下表 }sqlist,*sqlin...

godfatherlzq的博客 1040

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C语言循环结构精讲:底层认知与实用技巧

从底层逻辑来看, while 属于先判断后执行,仅当条件表达式为真时才运行循环体,适合未知循环次数的场景;而 for 循环整合初始化、条件判断、迭代更新三大模块,结构紧凑规整,是固定次数遍历的最优选择,也是日常开发中使用频率最高的循环结构。在数据处理中,精简循环嵌套层数,减少循环内部复杂运算,可显著降低资源消耗,提升程序运行性能。循环结构是C语言三大核心流程控制之一,也是实现代码复用、简化逻辑、提升程序效率的关键基础,广泛应用于数据遍历、条件重复执行、批量运算等开发场景。

2502_92200938的博客 163

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

初识C语言1

在1972年,由贝尔实验室的丹尼斯·里奇和肯·汤普逊在B语言(汤姆逊发明的)的基础上进行设计得来。

W3250174359的博客 471

【C语言】初识C语言+进阶篇导读

C 语言是一门通用计算机编程语言,广泛应用于底层开发。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C 语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的 C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

weixin_59511824的博客 2897

大学C语言是什么?计算机科学的基石与底层思维训练

大学C语言是什么?计算机科学的基石与底层思维训练

科技改变人类,技术成就未来 1345

chap01:认知C语言

C语言概述,初步认知C语言。

ahBingo的博客 429

学习数据结构之前,是否需要对C语言有深入的了解?

学习数据结构和算法,实践是非常重要的,如果仅仅是空有理论而不实践,反复学多少遍都没用。但是C语言作为最接近系统底层的高级语言(被人戏称高级汇编),我觉得是需要好好掌握理解的,虽然以后工作不一定用得到,但是对于理解计算机原理是很有帮助的。学习数据结构一个很重要的前提,在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「数据结构的资料从专业入门到高级教程」,不用纠结是否要完全掌握C语言,重点是动手写代码,写的时候时候自然就会去学,而不是完全掌握C语言再去学数据结构,这样就本末倒置了。

单片机一哥的博客 840

最早接触到的计算机编程语言——c语言

最早接触到的计算机编程语言——c语言 在经过入学后计算机导论的熏陶后,在大一的下半学期我终于接触到了一门语言,这也是我们最早接触的计算机编程语言——c语言。 在初学的时候,感觉这门课程十分晦涩,但是当学习了一段时间以后,便发觉其实也不过如此罢了。俗话说,语言是思维的载体,没错,我们人类有我们交流的语言,动物有动物自己独特的语言,计算机也有交流的方式,也需要沟通,这便是我认为的c语言,于

极客园地 5660

打开新世界的大门——初识c语言

第一个C语言程序 学C语言当然第一个程序就是“hello world”,但就是这个简短的代码也是c的代码的启蒙。 #include——编译预处理指令 stdio.h——系统的库文件,其中包含输入输出函数指令 int——整形 数据类型 main——主函数 每个程序有且仅有一个主函数,函数的执行总是从主函数开始 printf——输出函数 \n——换行 转义字符 return 0 ——函数...

Moo_Lavender的博客 2114

C语言基础

计算机:能进行计算以及逻辑处理的设备硬件:组成计算机的物理部件。(内存条、CPU、硬盘…)开发中对于硬件的认知:​ 硬件包括电子设备、单片机、集成电路和嵌入式系统。软件:计算机中运行的程序和数据。开发中对于软件的认知:​ 软件分为系统软件(OS)、应用软件和编程工具(编译器)数据类型就是固定大小内存的别名,并且描述了一个变量存放什么类型的数据。简单来说,就是组织和操作数据。数据:计算机要处理的数据(数字、字符串、文字、符号、图片、音视频等)

m0_69070708的博客 651

初识C语言

##什么是C语言 C语言一门计算机语言,主要应用于底层开发。 计算机语言的发展历程: 二进制语言(正电1/负电0)->汇编语言->B语言->C语言->C++、java等语言 ##第一个C程序 hello world #include<stdio.h> //standard input output int main // 主函数,是程序的入口,有且仅有一个 {

一品铁观音 的博客 612

初识C语言(上)

在这里我将给大家简单介绍一下C语言我们要学的内容,大家进行初步的认知。 C语言呢是一门结构化程序设计语言,什么是结构化,也就是:顺序结构,选择结构,循环结构,生活中的所有事都是这几个结构的组合嵌套和重复。所以C语言才能通过编程解决生活中的问题。 编程语言的发展:机器语言也就是二进制–汇编语言人们通过一些助记符更好的编程–B语言–C语言,这时C语言已经是一门高级语言了。 C语言中我们要了解 变量 常量 数据类型 变量的作用域和生命周期 注释和转义字符 数组 函数 指针 选择结构 循环结构 预处理指令 变量

qq_57681480的博客 1005

C语言结构框架(有待完全)

haoziai905的博客 837

c生万物之初识c语言

c生万物之初识c语言前言:1.初学习了c语言,感觉还是很不错的,哈哈~~。下面让我来分享下我目前对c的认识题外:后面有关于c语言风格培养的《高质量的c-c++编程》PDF版链接,有需要自拿。哈哈~~。一.初识c语言1.1计算机语言的发展过程:**由需求促进发展,由不成熟逐渐成为流行。**1.2什么是c语言?选择C语言的理由:==流行性,高效性,可移植性高,强大而灵活,面向程序员。==# 简单的c程序## 3.1 c中的数据类型:整形,浮点型,字符型及其所占空间大小3.1.2 每种数据类型的在内存中的大小=

qq_55439426的博客 8055
上一篇: C语言之对结构的认知(上)
下一篇: 集合框架基础之Java
代码白.
博客等级 码龄3年 193粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值