当前位置: 首页 > news >正文

【C语言】循环结构程序设计 (详细讲解)

前言:前面介绍了程序中常常用到的顺序结构和选择结构,但是只有这两种结构是不够的,还有用到循环结构(或者称为重复结构)。因为在日常生活中或是在程序所处理的问题中常常遇到需要重复处理的问题。

【卫卫卫的代码仓库】
【选择结构】
【专栏链接】这里是引用

while语句实现循环

while表达式的一般形式如下:
while(表达式) 语句

其中的语句就是循环体。循环体只能是一个语句,可是一个简单的语句,还可以是复合语句(用花括号扩起来的若干语句)。执行循环体的次数是由循环条件控制的,这个循环条件就是上面一般形式的表达式,它也称为循环条件表达式。当此表达式的值为(以非0的值表示)时,就执行循环体语句;为时(以0表示)时,就不执行循环体语句。
我们可以简单的记为:只要当循环条件表达式为真(即条件成立),就执行循环体语句

看例题:求 1 + 2 + 3 + … + 99 + 100的和

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

代码流程图分析:
在这里插入图片描述

运行结果:
在这里插入图片描述


do…while语句实现循环

除了while语句以外,C语言还提供了do…while语句来实现循环结构体。如:

int i = 1; //设变量i的初始值为1
do   //循环结构开始
{printf("%d",i++);//循环体
}while(i <= 100); //当i小于等于100时,继续执行循环体

do … while的一般形式为:
在这里插入图片描述

其中的“语句”就是循环体。它的执行过程可以用图5.4表示。它的执行逻辑如下图所示:
在这里插入图片描述

例题:用do…while语句求 1+ 2 + 3 + … + 99 + 100的和

int main()
{int i = 1;int sum = 0;do{sum += i;i++;} while (i <= 100);printf("sum = %d\n", sum);return 0;
}

运行结果:在这里插入图片描述


用for语句实现循环

除了while语句和do…while语句实现循环外,C语言还提供了for语句实现循环,而且for语句更加灵活,不仅可以用于循环次数已经确定的情况,还可以用于循环次数不确定而只给出循环条件的情况,它可以完全代替while语句。

例如:

for (i = 1; i <= 100; i++) //控制循环次数,由1变到100,共循环100次printf("%d",i);        //执行循环体,输出i当前值

它的执行过程如下图:

在这里插入图片描述


for语句的一般形式为:
在这里插入图片描述


用break提前中止循环

break语句可以用来从循环体内部跳出循环体,即提前结束循环,接着执行循环下面的语句。

例题:在全系1000名学生中举行慈善捐款,当总数达到10万元时就结束,统计此时捐款的人数以及平均每人捐款的数目。

int main()
{float amount = 0.0;float ave = 0.0;float total = 0.0;int i = 0;for (i = 1; i <= 1000; i++){printf("请输入你的捐款数额\n");scanf("%f", &amount);total += amount;if (total >= 100000){break;}}ave = total / i;printf("捐款的人数是%d:\n", i);printf("每人捐款的平均值%f\n", ave);return 0;
}

运行结果:
在这里插入图片描述


用continue语句提前结束本次循环

有时并不希望终止整个循环的操作,而只希望提前结束本次循环,而接着执行下次循环。这时可以用continue语句。
例题:要求输出100 ~ 200的不能被3整除的数

int main()
{int i = 0;for (i = 100; i <= 200; i++){if (i % 3 == 0){continue;}printf("%d ", i);}printf("\n");return 0;
}

运行结果:
在这里插入图片描述


今天的内容就讲到这里了,如果各位觉得讲的好的话麻烦给作者一个三连吧!讲的不好的话也麻烦各位多多指出了,谢谢各位的观看。

相关文章:

【C语言】循环结构程序设计 (详细讲解)

前言&#xff1a;前面介绍了程序中常常用到的顺序结构和选择结构&#xff0c;但是只有这两种结构是不够的&#xff0c;还有用到循环结构(或者称为重复结构)。因为在日常生活中或是在程序所处理的问题中常常遇到需要重复处理的问题。 【卫卫卫的代码仓库】 【选择结构】 【专栏链…...

Spring的注解开发-注解原理解析-xml方式/注解方式组件扫描

目录 Spring注解的解析原理 xml配置组件扫描 注解方式配置组件扫描 原理图 yysy&#xff0c;没有搞太明白&#xff0c;真的复杂&#xff0c;欢迎大佬留言解惑 Spring注解的解析原理 使用Component等注解配置完毕后&#xff0c;要配置组件扫描才能使注解生效 xml配置组件扫…...

导出视频里的字幕

导出视频里的字幕 如何利用剪映快速提取并导出视频里的字幕 https://jingyan.baidu.com/article/c35dbcb0881b6fc817fcbcd2.html 如何快速提取视频中的字幕&#xff1f;给大家介绍一种简单高效又免费的提取方法。需要利用到“剪映”&#xff0c;以下是具体的操作步骤和指引&a…...

【KingbaseES】银河麒麟V10 ARM64架构_安装人大金仓数据库KingbaseES_V8R6(CentOS8)

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341; 希望本文能够给您带来一定的…...

【Vue】Vuex详解,一文读懂并使用Vuex

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《ELement》。&#x1f3af;&#x1f3af; &#x1…...

第三章 C程序设计

常量与变量 常量&#xff1a;整型常量&#xff1a;如1000 实型常量&#xff1a;十进制小数 字符常量&#xff1a;&#xff1f;&#xff01; 变量&#xff1a;变量必须先定义&#xff0c;后使用。 标识符&#xff1a;一个对象的名字。 浮点型数据 浮点型数据是用来表示具…...

QB/T 2703-2020 汽车装饰用皮革检测

汽车装饰用皮革主要用于坐垫皮革&#xff0c;座椅套皮革&#xff0c;靠垫套皮革&#xff0c;方向盘皮革和其他装饰用皮革&#xff0c;比如仪表盘等&#xff0c;其物理和环保性能非常重要&#xff0c;对人体的健康能起到很大的影响。 QB/T 5754-2022水性/无溶剂聚氨酯复合人造革…...

使用正则表达式批量修改函数

贪心匹配&#xff0c;替换中的$1代表括号中的第一组。 使用[\s\S\r]代表所有字符&#xff0c;同时加个问号代表不贪心匹配:...

【网络协议】UDP

UDP协议与TCP协议都是传输层协议&#xff0c;应用层把数据拷贝到传输层&#xff0c;后续动作由下层自行决定。 UDP协议端格式 16位 UDP 长度 , 表示整个数据报 (UDP 首部 UDP 数据 ) 的最大长度 ;&#xff08;也就是65535字节&#xff09; 如果校验和出错 , 就会直接丢弃 ; …...

雷达编程实战之提高探测速度

有效帧频率作为雷达一个非常核心的指标&#xff0c;它代表了雷达探测识别的速度&#xff0c;速度越快&#xff0c;后级各项智能驾驶功能就能得到更快、更有效的判断。本篇文章首先从硬件的角度&#xff0c;提供了一种合理利用片上资源提高探测识别速度的常用方法&#xff0c;然…...

pyspark常用功能记录

前言 pyspark中很多常用的功能&#xff0c;过段时间没有使用就容易忘记&#xff0c;需要去网上搜索&#xff0c;这里总结一下&#xff0c;省的以后还去去搜&#xff0c;供自己以后参考。 withColumn def hot_func(info_str):if info_str:eturn "1"return "0&…...

Spring面试题学习: 单例Bean是单例模式吗?

单例Bean是单例模式吗 学习背景答案扩展知识单例模式Spring BeanJava Bean单例Bean 个人评价我的回答 学习背景 想换工作. 学习记录, 算是一个输出. 答案 通常来说, 单例模式是指在一个JVM中, 一个类只能构造出一个对象. 有很多方法来实现单例模式, 比如饿汉模式. 但是我们通…...

EM@常用三角函数图象性质(中学部分)

文章目录 abstract正弦函数正弦型函数转动相关概念旋转角速度转动周期转动频率初相小结 余弦函数的图象与性质性质 正切函数的图象和性质由已知三角函数值求角任意角范围内反三角函数(限定范围内)反正弦反余弦反正切 abstract 讨论 sin ⁡ , cos ⁡ , tan ⁡ \sin,\cos,\tan s…...

一文拿捏Spring事务之、ACID、隔离级别、失效场景

1.&#x1f31f;Spring事务 1.编程式事务 事务管理代码嵌入嵌入到业务代码中&#xff0c;来控制事务的提交和回滚&#xff0c;例如TransactionManager 2.声明式事务 使用aop对方法前后进行拦截&#xff0c;然后在目标方法开始之前创建或者加入一个事务&#xff0c;执行完目…...

input输入表头保存excel文件

input输入表头 input输入表头 &#xff08;input内除了/&#xff0c;空格 回车 标点符号等 全部作为单元格分隔符&#xff09;保存/storage/emulated/0/代码文件/ 没有就创建文件名命名方法&#xff1a;编号. 库 时间戳嗨&#xff01;听说你有个需求&#xff0c;想根据用户输入…...

DataBinding双向绑定简介

一、简介 在Vue中使用的是MVVM架构。通过ViewModel可以实现M层和V层数据的双向绑定。Model层的数据发生变化后&#xff0c;会自动更新View层UI。UI层数据发生变化&#xff08;用户输入&#xff09;&#xff0c;可以驱动Model层的数据发生变化&#xff0c;借助于Vue框架中的View…...

Is This The Intelligent Model(这是智能模型吗)

Is This The Intelligent Model 这是智能模型吗 Ruoqi Sun Academy of Military Science Defense Innovation Institute, Beijing, 100091, China E-mail: ruoqisun7163.com The exposed models are called artificial intelligent models[1-3]. These models rely on knowled…...

MySQL事务:特性、使用、并发事务问题和隔离级别

什么是事务&#xff1f; 在数据库中&#xff0c;事务是一组SQL操作&#xff0c;它们被视为一个单一的工作单元。事务必须同时成功或失败&#xff0c;以确保数据库的一致性。事务通常遵循ACID属性&#xff0c;即原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Co…...

FFmpeg日志系统、文件与目录、操作目录

目录 FFmpeg日志系统 FFmpeg文件与目录操作 FFmpeg文件的删除与重命名 FFmpeg操作目录及list的实现 操作目录重要函数 操作目录重要结构体 FFmpeg日志系统 下面看一个简单的 demo。 #include <stdio.h> #include <libavutil/log.h>int main(int argc,char* …...

好奇喵 | Surface Web ---> Deep Web ---> Dark Web

前言 我们可能听说过深网(deep Web)、暗网(dark Web)等名词&#xff0c;有些时候可能会认为它们是一个东西&#xff0c;其实不然&#xff0c;两者的区别还是比较大的。 什么是deep web&#xff1f; 深网是网络的一部分&#xff0c;与之相对应的是表层网络&#xff08;surface …...

三、thymeleaf基本语法

3.1、基本语法 3.1.1变量表达式&#xff1a;${...} 变量表达式用于在页面中输出指定的内容&#xff0c;此内容可以是变量&#xff0c;可以是集合的元素&#xff0c;也可以是对象的属性。主要用于填充标签的属性值&#xff0c;标签内的文本&#xff0c;以及页面中js变量的值等…...

创建一个新的IDEA插件项目

启动IntelliJ IDEA并按照以下步骤创建新的插件项目&#xff1a; 打开IntelliJ IDEA并单击“Create New Project”&#xff08;创建新项目&#xff09;。 在左侧菜单栏中选择“IntelliJ Platform Plugin”&#xff08;IntelliJ平台插件&#xff09;。 在右侧窗格中&#xff0c…...

Doris数据库BE——冷热数据方案

新的冷热数据方案是在整合了存算分离模型的基础上建立的&#xff0c;其核心思路是&#xff1a;DORIS本地存储作为热数据的载体&#xff0c;而外部集群&#xff08;HDFS、S3等&#xff09;作为冷数据的载体。数据在导入的过程中&#xff0c;先作为热数据存在&#xff0c;存储于B…...

Python无废话-办公自动化Excel格式美化

设置字体 在使用openpyxl 处理excel 设置格式&#xff0c;需要导入Font类&#xff0c;设置Font初始化参数&#xff0c;常见参数如下&#xff1a; 关键字参数 数据类型 描述 name 字符串 字体名称&#xff0c;如Calibri或Times New Roman size 整型 大小点数 bold …...

竞赛 机器视觉的试卷批改系统 - opencv python 视觉识别

文章目录 0 简介1 项目背景2 项目目的3 系统设计3.1 目标对象3.2 系统架构3.3 软件设计方案 4 图像预处理4.1 灰度二值化4.2 形态学处理4.3 算式提取4.4 倾斜校正4.5 字符分割 5 字符识别5.1 支持向量机原理5.2 基于SVM的字符识别5.3 SVM算法实现 6 算法测试7 系统实现8 最后 0…...

Django 数据库迁移(Django-04)

一 数据库迁移 数据库迁移是一种数据库管理技术&#xff0c;它用于在应用程序的开发过程中&#xff0c;根据模型&#xff08;Model&#xff09;的变化自动更新数据库结构&#xff0c;以保持数据库与代码模型的一致性。数据库迁移的主要目的是确保数据库与应用程序的模型定义同…...

Redis相关概念

1. 什么是Redis&#xff1f;它主要用来什么的&#xff1f; Redis&#xff0c;英文全称是Remote Dictionary Server&#xff08;远程字典服务&#xff09;&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提…...

Scala第十八章节

Scala第十八章节 scala总目录 文档资料下载 章节目标 掌握Iterable集合相关内容.掌握Seq集合相关内容.掌握Set集合相关内容.掌握Map集合相关内容.掌握统计字符个数案例. 1. Iterable 1.1 概述 Iterable代表一个可以迭代的集合, 它继承了Traversable特质, 同时也是其他集合…...

JAVA学习(4)-全网最详细~

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…...

【单片机】12-串口通信和RS485

1.通信有关的常见概念 区分&#xff1a;串口&#xff0c;COM口&#xff0c;UART&#xff0c;USART_usart和串口区别-CSDN博客 串口、COM口、UART口, TTL、RS-232、RS-485区别详解-CSDN博客 1.什么是通信 &#xff08;1&#xff09;人和人之间的通信&#xff1a;说话&#xff…...

长沙网站设计报价/军事新闻今日最新消息

package com.xiaowu.demo;/*** 输入两个正整数m和n&#xff0c;求其最大公约数和最小公倍数。* * author WQ**/ public class Demo6 {public static void main(String[] args) {int a 5;int b 10;int max f(a, b);int min a * b / max;System.out.println("最大公约数…...

博罗企业网站建设/广州seo推广营销

在MySQL中, 如果显示的输入密码去登录的话, 就会有一个Warning显示出来, 提醒这种使用方式会不安全, 信息如下: [Warning] Using a password on the command line interface can be insecure. 如何去除&#xff0c;三种方式&#xff1a; 第一种方式: mysql_config_editor mys…...

网站建设公司做前端/百度开户流程

kotlin萌新入门 文章目录kotlin萌新入门[toc]1. 基础教程2.编码规范1. 基础教程 变量 只读变量 val a :Int 1普通变量 var a:Int 123可自动推测类型可以接受一个表达式 val name if(you"tomcat"){"yes"}else{"no"} 函数返回值 普通返回fun() …...

wordpress 链接扁平化/百度推广运营怎么做

当再次看到自己半年前说的“有时间我会把内存对齐这个补上滴”&#xff0c;内心可是满满的懒惰不想动呀[doge]...... 下面是正文———————————————— 一.为什么要内存对齐 众所周知&#xff0c;当CPU想从内存中取出数据时&#xff0c;会先将地址通过 地址总线 传…...

wordpress怎么添加语言包/拉新奖励的app排行

coreseek建立索引出现上面问题经过测试发现有下面几个原因&#xff1a; 1. 分词配置文件不存在 uni.lib 2. uni.lib配置文件格式不正确转载于:https://www.cnblogs.com/zhja/p/7088889.html...

wordpress静态分离/焊工培训

近段时间以来&#xff0c;我们频频听到「机器学习&#xff08;machine learning&#xff09;」这个词&#xff08;通常在预测分析&#xff08;predictive analysis&#xff09;和人工智能&#xff08;artificial intelligence&#xff09;的上下文中&#xff09;。几十年来&…...