C语言基础——循环结构

article/2025/7/2 6:38:59

C语言的基本结构之一。在程序中有连续执行的操作可以用循环结构,简化函数,C语言中有三种循环结构,for循环,while循环,do-while循环,其中for循环最常用。

一循环结构概述

1.什么是循环执行

循环执行是循环结构的核心,表现为反复执行一个或一组操作。在编程中,如果想要从数据处理中发现循环执行,就要分析程序的执行结果与数据的处理过程。

a.分析程序的执行结果

大部分程序在处理数据后,都有明确的执行结果。从程序的执行结果的表现形式和数量构成,往往可以找到重复执行的“痕迹”。

b.分析数据的处理过程

部分程序处理数据后没有明确的结果,或者结果非常简单,无法对其进行分析。这个时候,可以分析数据的处理过程,从中发现重复操作的规律。

c.避免无限循环

对于循环执行,一定要注意循环操作的终止条件,避免出现无意义的无限循环,也就是死循环,终止条件用于限制循环操作的无限执行,规定什么时候结束循环操作,如果没有会导致程序出现问题。

2.循环结构的构成

一个完整的循环包括四个部分:初始化部分、判断部分、循环部分、迭代部分

a.初始化部分

初始化部分用来描述循环操作前的基本情况。在程序中,初始化部分一般由各种初始条件和额外的计数器组成。在C语言中,计数器一般使用变量i、j、k表示,完整准确的初始化才能保证程序的正常进行。

b.判断部分

判断部分又称终止部分,用来在每次进行循环操作之前或者之后判断是否完成目标任务。

c.循环部分

循环部分是指反复执行的操作部分,其中可能是极其简单的操作,也可能是复杂的。

d.迭代部分

迭代部分是指用于修改关键状态,而该状态参与判断部分的处理。如果确实这个部分,就有可能陷入死循环。

二.for循环

C语言中最常用,最严格,功能最强的循环语句

1.语句结构

由初始条件,判断条件,迭代条件及循环体四个部分组成

for(初始条件;判断条件;迭代条件)
{循环体;
}

(1)初始条件可以初始化环境,用于确定具体的起始循环环境。
(2)判断条件用于判断是否满足条件,如果满足,执行循环体,如果不满足,跳出循环。
(3)迭代条件用于改变参与判断条件的值,只有判断条件的值不断改变,才能推动循环语句的进行,避免陷入死循环。
(4)循环体就是指循环执行的具体内容。

2.流程

for循环语句在每次循环时都要做一次条件判断,如果判断结果为假,则跳出循环,如果为真继续循环

首先从初始条件进入循环语句。然后进行判断条件,进行判断如果为真则进入循环,循环结束则进行迭代条件,之后再次进入判断条件判断是否真假,依此类推,直至判断条件为假跳出循环

3.简化形式

for循环语句的简化形式是指将小括号中的初始条件与迭代条件省略,只保留判断条件 (但是分号不可略)

for(;判断条件;)
{循环体;
}

当for循环语句的循环体是单条语句时,可以省略{}

三.while循环语句

在C语言中,while循环语句实际上就是for循环语句的简化形式的另外一种写法,也属于当型循环语句。

1.语句结构

while循环语句是指当判定条件成立时,执行指定语句。
while循环语句的语法如下:

while(判定条件)
{循环体;
}

其中,判定条件可以是关系表达式(隐式关系表达式)或逻辑表达式,用于控制循环的次数,循环体可以为语句或语句块,为循环语句执行的具体内容。
判断条件不可以被省略

2.循环方式

while循环语句在每次循环时都要做一次条件判断,如果判断结果为真则进入循环,若为假,跳出循环;

四.do-while循环语句

直到型循环是常用的循环结构形式。它是先运行循环体,在进行条件判断。这种形式中,如果满足条件,则再次运行循环体;如果不满足,则跳出循环体。简而言之,直到型循环就是先执行后判断。

1.语句结构

do-while循环语句是先执行循环体,直到判断条件不满足时结束循环。

do
{循环体
}while(判断条件);

其中循环体可以是单条语句也可以是语句块,会被直接执行;判断条件可以是关系表达式(隐式关系表达式)或逻辑表达式,且不可以被省略;判断条件后的分号代表do-while循环语句的结束,不可省略

do-while循环语句会先执行循环体,然后对判断条件进行判断。根据判定结果选择是否再次执行循环体。

do-while循环语句中的循环体至少会被执行一次

五.循环跳转

循环跳转是指再执行循环语句过程中跳出循环语句或跳转到指定位置。循环跳转是在特殊情况下的备用选择。在C语言中,循环跳转包含3种,分别为跳出循环、跳出当前循环以及跳转到指定位置

1.跳出循环

跳出循环是指跳出当前循环语句,不再执行循环语句。在C语言中,使用break语句来实现跳出循环在这里插入图片描述

2.跳出当前循环

跳出当前循环是指跳出本次循环语句,并尝试再次进入循环语句。在C语言中,使用contine语句来实现跳出当前循环。在这里插入图片描述

3.跳转至指定位置

跳转至指定位置是指直接跳转到一个预先指定位置。在C语言中,使用goto语句来实现跳转到指定位置。

goto  标号;标号:

goto语句由两部分组成:第一部分由关键字goto与标号组成,表示跳转到开始位置;第二部分由标号与冒号组成,表示跳转到目的位置。
标号是按标识符规定书写的符号;标号与冒号组成标识语句。
在这里插入图片描述

六.嵌套循环

嵌套循环是指为了完成复杂的循环,将多个循环语句进行相互嵌套。在C语言中,嵌套循环包括普通嵌套与复杂嵌套循环两种方式。

1.普通嵌套循环

普通嵌套循环是将循环语句直接嵌套使用,循环语句之间互不影响。

for(i=1;i<4;i++)
{for(j=1;j<=3;j++){printf("%d\n",j);}printf("-------------\n");
}

2.复杂嵌套循环

复杂嵌套循环是指外层循环的迭代条件会影响到内层循环的判断条件。复杂嵌套循环与普通嵌套循环的执行流程是一样的。
在使用复杂嵌套循环时,避免死循环
在这里插入图片描述


http://chatgpt.dhexx.cn/article/4QpU0Wfm.shtml

相关文章

Python中的循环结构

Python中循环的介绍 1、什么是循环 现实生活中&#xff0c;也有很多循环的应用场景&#xff1a; &#xff08;1&#xff09;食堂阿姨打菜&#xff1a;接过顾客的餐盘→询问菜品→打菜→递回餐盘&#xff0c;重复以上过程&#xff0c;直到所有顾客的菜都打完了 &#xff08;…

C++循环结构

C循环结构 一、循环结构1、while 循环1.1 语法1.2 练习题1.3 代码找错 2、do-while 循环2.1 语法2.2 练习题 3、for 循环3.1 语法3.2 练习题 4、三种循环执行顺序 二、循环嵌套1.输出正方形2.输出乘法口诀3.输出平行四边形4.输出数字菱形 三、跳转语句1.break语句1.1 在 switch…

MATLAB循环结构

目录 1、for语句 注意事项 (1)for语句针对行向量的每一个元素执行一次循环语句体&#xff0c;循环的次数就是向量中元素的个数&#xff0c;也可以针对任意向量。 (2)可以在for循环语句体中修改循环变量的值&#xff0c;当程序执行流程再次回到循环开始时&#xff0c;就会自…

【python】循环结构大归纳看这里就够了~

一、循环结构 1.认识循环&#xff1a;反复做同一件事情的情况&#xff0c;称之循环。 2.循环的分类&#xff1a;(1) while循环 &#xff08;2&#xff09;for循环 (3) 循环的嵌套 二、while循环的使用 1.while循环 while循环&#xff1a;代码一直重复&#xff0c;直到条件…

三种常见循环结构

问&#xff1a;求1-100的所有自然数之和。 生活中看到这个问题我们会用数学老师教的简便计算:12...100&#xff08;1100&#xff09;&#xff08;299&#xff09;&#xff08;5051&#xff09;50*1015050&#xff1b;但是计算机并不会简便计算&#xff0c;它只会单纯的123...10…

简单的5种循环结构

ilili 循环结构 1. For循环 重复重复 for 循环语句&#xff1a; for(初始化变量&#xff1b;循环条件&#xff1b;循环迭代){ 循环语句&#xff1b; } for(var i0;i<count;i){ sumsumi; } document.write(""sum); 迭代就是和— —的意思 例子: var sum0; for…

C语言—循环结构

目录 循环结构 循环控制语句 ​ 循环类型 一.while循环 语法 break在while循环中的作用 continue在while循环中的作用 多组输入 清空输入缓存区 二.for循环 语法 三.do while 语法 break和continue在do while循环中的使用 循环结构 循环结构是指在程序中需要反…

利用汉字在计算机里面的编码来得到汉字的首拼音:

利用汉字在计算机里面的编码来得到汉字的首拼音&#xff1a; static public string GetChineseSpell( string strText) {int len strText.Length;string myStr "";for(int i0;i<len;i){myStr getSpell(strText.Substring(i,1));}return myStr;} static publ…

获取中文拼音首字符

2019独角兽企业重金招聘Python工程师标准>>> http://pinyin4j.sourceforge.net/ 转载于:https://my.oschina.net/soho00147/blog/1633932

Excel中文转换为拼音(大写首字母、小写首字母、全拼、全拼首首字母大写)

很多时候我们需要处理一下汉字转换为拼音的需求&#xff0c;今天给大家分享一下标题包含的一下转换方法 1 、excel通过宏可以很好的处理汉字转换为拼音的 1.1下面的是转为全拼音的宏代码 Function pinyin(p As String) As String i Asc(p) Select Case i Case -20319 To -203…

php 获取字符串完整拼音,PHP 获取中文字符串的首字符拼音字母

class"php"><?php header(Content-Type: text/html; charsetutf-8); $str"阅谁问君诵&#xff0c;水落清香浮"; echo getFirstCharCode($str); function getFirstCharCode($str){ $str iconv("UTF-8","gb2312", $str); $targe…

拼音首字符检索

原理很简单&#xff0c;找出汉字表中拼音首字符分别为“A”至“Z”的汉字内码范围&#xff0c;这样&#xff0c;对于要检索的汉字只需要检查它的内码位于哪一个首字符的范围内&#xff0c;就可以判断出它的拼音首字符。 程序更简单&#xff0c;包括3个控件&#xff1a;一个…

C#中获得汉字的首拼音(加强版)

/// <summary> /// 汉字拼音首字母列表/// 包含了20901个汉字,收录的字符的Unicode编码范围为19968至40869/// </summary>#region ChineseCharListprivate static string[] ChineseCharList { "A阿啊锕嗄厑哎哀唉埃挨溾锿鎄啀捱皑凒溰嘊敳皚癌毐昹嗳矮蔼躷噯…

C#获得汉字的首拼音

利用汉字在计算机里面的编码来得到汉字的首拼音&#xff1a; static public string GetChineseSpell( string strText) ... { int len strText.Length; string myStr ""; for(int i0;i<len;i) ...{ …

PHP中文字符串转化为英文首拼音首字母大写

效果&#xff1a; 中国 >ZG 中文转化为英文首字母 中国&#xff1a;ZG &#xff1b;中2国&#xff1a;ZG&#xff1b;z国&#xff1a;ZG1:省略了数字&#xff08;不转化&#xff09; 用法&#xff1a; $result Character::getEnByCnByString(‘i是中国人’,3);//这边的3为截…

使用完整拼音查找汉字(完整拼音,不是网上散布的首字符拼音那种方法)

注意&#xff1a;这绝不是网上散播的只能使用拼音首字符进行汉字查找的方案&#xff0c;这是一个真正的输入完整拼音得到相应汉字的解决办法。 大部分程序员眼中只有变量、函数……他们忽略生活中的一切&#xff0c;他们并不理解真正的优雅的程序解决方案往往来自生活&#xff…

基于LeNet5实现交通标志分类任务

前言 大家好,我是阿光。 本专栏整理了《PyTorch深度学习项目实战100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPy…

Lenet5网络结构

Lenet5网络是深度学习中最基本的网络结构,开始于90年代,最早是应用于手写数字识别。受限于当时的环境,所以一开始不怎么出名。但是,在2012年,出现了Alexnet,在图像分类领域打败了所有机器学习方法。深度学习开始变得火热。 import torch import torch.nn as nn import t…

[PyTorch][chapter 41][卷积网络实战-LeNet5]

前言 这里结合前面学过的LeNet5 模型&#xff0c;总结一下卷积网络搭建&#xff0c;训练的整个流程 目录&#xff1a; 1&#xff1a; LeNet-5 2: 卷积网络总体流程 3&#xff1a; 代码 一 LeNet-5 LeNet-5是一个经典的深度卷积神经网络&#xff0c;由Yann LeCun在1998年提…

(一)Lenet5 手写数字识别原理及代码解析

模型简单&#xff0c;本地可跑 论文参考&#xff1a;Gradient-based learning applied to document recognition MNIST手写数据集 50000个训练数据 10000个测试数据 图像大小2828 10类&#xff08;0-9&#xff09; 一、python预安装库 pip install torch pip install torchvi…